在Node REPL中运行ES6是否可行?

3

有没有办法在Node REPL(读取-求值-输出循环)中运行ES6?当运行ES6命令时,我收到如屏幕截图所示的错误。如果有人能帮我配置Node以运行ES6代码,我会非常感激。

enter image description here


4
你可能正在使用非常老的Node版本。最新版本支持几乎所有的ES6功能。请升级。 - Ram
1
你使用的是哪个版本的Node?node -vconsole.log(process.version)显示了什么? - t.niese
1
最新版本的Node默认支持ES6。http://node.green/ - lokesh-coder
3个回答

4

简述:升级 Node

我使用的是 Node.js v6.0.0 版本,这意味着我默认解锁了所有 ES6 特性。我的 REPL 支持(基本上)一切功能。现在,node v6.0.0 目前正在开发中,因此您可能不想升级生产服务器,但如果您是开发人员,它非常稳定,可以用于日常使用。

如果您必须使用过时的 node 版本,我建议您安装 n。这是一种在一台机器上管理您的 node 版本的方法。

祝你好运!


1

Node 4及以上版本支持大多数ES6功能,这里是兼容性表

要在旧版Node中使用ES6功能,应该使用--harmony标志启动,并且代码应该在严格模式下运行。

无法通过'use strict'全局启用REPL的严格模式,因此ES6代码应放置在IIFE内。

可以使用--use_strict全局启用严格模式。要在旧版Node版本(0.12.x及更低版本)中启用实验性的ES6支持,应该使用以下命令启动:

node --harmony --use_strict

-1

加上'use strict'。

严格模式是 ECMAScript 5 中的一项新功能,允许您将程序或函数放置在“严格”操作环境中。这种严格的上下文会阻止某些操作,并抛出更多异常。

有关 use strict 的更多信息,请参见 此处此处

enter image description here


1
你可以这样解释为什么添加 'use strict' 会有帮助,而不是写下“我必须再写30个符号才能发表评论”的内容。 - t.niese
已修复。我认为这显然是个问题 :( 我经常想知道为什么有些人不使用严格模式。 - Aikon Mogwai
3
在这些链接中,我没有看到与“use strict”启用ECMAScript 5中的“let”有关的内容。它只会使“let”成为一个保留字,如果您将其用作标识符,它会抛出错误。 - JohnnyHK
1
如果这是显而易见的,那么原帖作者就应该知道了。此外,您的引用只包含它防止某些事情发生的内容。为什么一个防止执行某些操作的指令会增加更多功能呢?'use strict'是ES5的一个新功能,因此一些供应商决定要求使用'use strict'来激活ES5及以上的功能。但这与'use strict'指令本身无关,只是供应商决定使旧代码向新代码的转换更容易的一件事。在较新的引擎中,它不再需要。 - t.niese

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接