2014-10-03 71 views
10

我想开始使用即将到来的ECMAScript 6(ES6)编写代码,以开始掌握新的语法。我该如何编写和测试ECMAScript 6代码?

是否有某种网络资源或浏览器插件可用于播放(编写和测试代码)关于我们目前拥有的关于ES6的内容?

我一直认为使用Google Chrome Canary可能会有所帮助。所以,我下载金丝雀,我能在金丝雀几个特点:

Enable Experimental JavaScript (Mac, Windows, Linux, Chrome OS, Android)

Enable web pages to use experimental JavaScript features.
#enable-javascript-harmony Enable

而且在测试let块范围for循环

for (let i = 0; i < 10; i++) { 
    console.log(i); 
} 

后,我得到了一个语法错误:

SyntaxError: Unexpected identifier

+1

有Traceur但它是越野车的地狱。 – nullpotent 2014-10-03 11:09:13

+0

我听说你需要使用严格模式的ES6才能在Chrome Canary中工作 – Bergi 2014-10-03 11:11:05

+1

@iccthedral真的吗?我现在使用Traceur取得了很大的成功。我不会这样分类。 ES6标准还没有得到批准,所以有些事情可能并不是最终的,Traceur不支持所有ES6的事情,但是对于它所支持的内容,迄今为止我已经有了非常好的体验。你遇到了什么样的问题? – 2014-10-07 02:29:07

回答

4

在铬37(电流铬)与实验的JavaScript标志时,以下作品启用:

(function() { 
    "use strict"; 
    for (let i = 0; i < 10; i++) { 
     console.log(i); 
    } 
})() 

在严格模式下,如果您未处于严格模式,您应该看到SyntaxError: Illegal let declaration outside extended modeSyntaxError: Unexpected identifier,如果未启用实验性JavaScript标志,则应该看到SyntaxError: Unexpected strict mode reserved word

您也可以使用BabelTraceur and the --block-binding flag enabled编译您的代码。

有关更多信息,请参阅kangax's ES6 compatibility table

+0

使用版本40.0.2179.0 canary(64位)我得到了“SyntaxError:意外的标识符”但是在包含“严格使用”后,循环运行。我认为“严格使用”是针对ES5的。谢谢 – Aaron 2014-10-06 08:05:02

+0

我错误的错误消息 - 它可能实际上是一个旧的[报废](http://stackoverflow.com/questions/17253509/what-is-extended-mode),你看到新的一。我已经更新了答案以反映这一点。 – lyschoening 2014-10-06 09:38:29

1

Babel有一个工具来测试transpile和执行代码。只要使用它来测试和在webapps中,它很可能会用它来传输到产品代码!

http://babeljs.io/repl

Babel tranpiler