2015-09-27 30 views
4

我有最新的Chrome版本(45,也Chrome Canary版是在47版),均與啓用實驗性JavaScript標誌。我想使用ECMA6,但它不起作用。我不知道爲什麼。是否有任何必須啓用的技巧或其他標誌?ECMA 6不工作,儘管實驗JS啓用

在Chrome 45中,ECMA6的每個保留字(如import,class或其他)會引發「Uncaught SyntaxError:Unexpected reserved word」錯誤,並在Chrome Canary中引發「未捕獲的SyntaxError:意外的令牌導入」錯誤。

我會很感激任何幫助。而且,因爲幾個月前我沒有得到任何答案,只是「可能重複」Using ECMAScript 6,事實並非如此。它不能解決我的問題。

謝謝。

---編輯--- 我想使用的模塊,因爲我更喜歡比使用要求或通用的ecma6模塊。而且我也喜歡的課糖語法,代碼看起來更好:)

+3

最新版本的Chrome支持部分(不是全部)ES6功能。請指出您正在運行的Chrome版本,以及您認爲您啓用了這些功能的具體方式,以及您找到的哪些ES6功能未啓用。你的問題需要更具體。創建一個可重複的方案。 – jfriend00

+0

你是對的,我添加更多信息:) –

回答

7

模塊尚未原生支持在任何瀏覽器。您將需要使用transpiler如TraceurBabel。看看下面的人幫助你開始:

至於類,你可能能夠本地使用這些不必通過翻譯。你可以在這裏檢查兼容性表,看看今天原生瀏覽器支持類:

https://kangax.github.io/compat-table/es6/

至於現在,你可以看到,大多數瀏覽器還不支持類本身。但是,如果您使用的是Babel或Traceur,那應該不是問題。

+1

這個答案沒有過時,請參閱:https://medium.com/dev-channel/es6-modules-in-chrome-canary-m60-ba588dfb8ab7 – GrayedFox

3

這裏有一對夫婦的功能列表,告訴你在Chrome中哪些功能工作45

瀏覽器的功能狀態:https://www.chromestatus.com/features

ES6兼容性矩陣:https://kangax.github.io/compat-table/es6/

你會發現許多功能,如class sugar語法在Chrome 45中工作正常,但需要嚴格模式才能啓用。

例如,如果您運行的是在Chrome 45或更高版本中使用class的jsFiddle,它將運行:http://jsfiddle.net/jfriend00/xd56k8n3/。如果您在嚴格模式之外運行它,它會報告Uncaught SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode

模塊並不像他們還沒有在任何瀏覽器的支持。


僅供參考,以現在ES6編寫代碼的常用方法是使用一個transpiler像Babel或者你喂ES6代碼爲Traceur,並將其轉換它ES5兼容的,在當前的瀏覽器上運行的代碼。您可以在ES6中編寫代碼,但與當前瀏覽器兼容。

8

type="module"添加到腳本標記。這應該可以解決你的問題。