【问题标题】:Is it possible to run ES6 in Node REPL?是否可以在 Node REPL 中运行 ES6?
【发布时间】:2016-11-27 23:54:18
【问题描述】:

有没有办法在 Node REPL(读取评估打印循环)中运行 ES6?在运行 ES 6 命令时,我收到了屏幕截图所示的错误。感谢有人可以帮助我配置 Node 以运行 ES6 代码。

【问题讨论】:

  • 您可能使用的是非常旧的 Node.js 版本。最新版本支持几乎所有的 ES6 特性。升级。
  • 你使用什么版本的节点? node -vconsole.log(process.version) 显示什么?
  • 最新版本的节点默认附带 ES6 支持。 node.green

标签: javascript node.js ecmascript-6 read-eval-print-loop


【解决方案1】:

TL;DR:升级节点

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

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

祝你好运!

【讨论】:

    【解决方案2】:

    添加“使用严格”。

    严格模式是 ECMAScript 5 中的一项新功能,它允许您将程序或函数置于“严格”操作上下文中。这种严格的上下文会阻止执行某些操作并引发更多异常。

    关于use strict的更多信息是herehere

    【讨论】:

    • 您可以解释为什么添加 'use strict' 会有所帮助,而不是写 I must write more 30 symbols to post comment
    • 已修复。我认为很明显:(我经常想知道有些人不使用严格模式。
    • 我在这些链接中没有看到任何关于 use strict 启用在 ECMAScript 5 中使用 let 的内容。它只会使 let 成为保留字,如果使用它会引发错误作为标识符。
    • 如果很明显,那么 OP 就会知道。除此之外,您的报价仅包含它可以防止某些事情。为什么要防止执行某些操作的指令添加更多功能? 'use strict' 是 ES5 的新特性,所以一些厂商决定要求使用 'use strict' 来激活 ES5 及以上特性。但这与'use strict' 指令本身无关,只是供应商决定使新旧代码之间的转换更容易的一件事。在较新的引擎中不再需要它。
    【解决方案3】:

    Node 4 及更高版本支持开箱即用的大多数 ES6 功能,这里是 compatibility table

    要在较旧的 Node 版本中使用 ES6 功能,它应该以 --harmony 标志开头,并且代码应该在严格模式下运行。

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

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

    开始
    node --harmony --use_strict
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-19
      • 1970-01-01
      • 1970-01-01
      • 2015-10-05
      • 1970-01-01
      相关资源
      最近更新 更多