我有最新的 Chrome 版本(45 以及版本 47 的 Chrome Canary),两者都启用了实验性 JavaScript 标志。我想使用 ECMAScript 6,但它不起作用。我不知道为什么。是否还有任何技巧或其他标志也必须启用?
ECMAScript 6 的每个保留字(例如import
, class
,或其他)抛出一个“未被捕获SyntaxError
:意外的保留字”在 Chrome 45 和“未被捕获SyntaxError
: 意外的标记import
”Chrome Canary 中的错误。
几个月前我问过这个问题,没有得到任何答案,但“可能重复”使用 ECMAScript 6 https://stackoverflow.com/questions/24008366/using-ecmascript-6,但这并不能解决我的问题。
我想使用模块,因为我更喜欢 ECMAScript 模块而不是使用require
来自 CommonJS。而且我也喜欢类的语法糖 ——代码看起来更好。
任何浏览器尚不支持模块。您将需要使用转换器,例如Traceur https://github.com/google/traceur-compiler or Babel https://babeljs.io/。查看以下内容之一来帮助您入门:
- 立即选择 ES6 模块! http://developer.telerik.com/featured/choose-es6-modules-today/
- ES6 深入:今天将 ES6 与 Babel 和 Broccoli 一起使用 https://hacks.mozilla.org/2015/06/es6-in-depth-babel-and-broccoli/
- 使用 webpack 编写客户端 ES6 http://www.2ality.com/2015/04/webpack-es6.html
至于类,您也许可以在本机使用它们,而无需通过转译器。您可以在此处查看兼容性表,了解目前哪些浏览器原生支持类:
https://kangax.github.io/compat-table/es6/ https://kangax.github.io/compat-table/es6/
截至目前,您可以看到大多数浏览器尚不原生支持类。但是,如果您使用 Babel 或 Traceur,则不必担心。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)