Skip to content

ECMAScript 2015 (ES6) 及其之后

Node.js 基于现代版本的 V8 构建。通过紧跟该引擎的最新版本,我们确保 JavaScript ECMA-262 规范 的新特性能够及时地提供给 Node.js 开发者,并持续改进性能和稳定性。

所有 ECMAScript 2015 (ES6) 特性被分为三组:已发布暂缓进行中 的特性:

  • 所有 已发布 的特性,V8 认为它们是稳定的,在 Node.js 中默认启用,并且不需要任何运行时标志。
  • 暂缓 的特性,它们是几乎完成但 V8 团队认为不稳定的特性,需要一个运行时标志:--harmony
  • 进行中 的特性可以通过各自的 harmony 标志单独激活,尽管除非出于测试目的,否则强烈不建议这样做。注意:这些标志由 V8 公开,可能会在没有任何弃用通知的情况下发生更改。

Node.js 各版本默认包含哪些特性?

node.green 网站基于 kangax 的 compat-table,提供了各个 Node.js 版本支持的 ECMAScript 特性的优秀概述。

哪些特性正在开发中?

V8 引擎不断添加新特性。一般来说,可以预期它们会在未来的 Node.js 版本中上线,尽管时间未知。

您可以通过搜索 --v8-options 参数来列出每个 Node.js 版本正在开发中的所有特性。请注意,这些是 V8 的不完整且可能存在问题的特性,因此使用需谨慎:

sh
node --v8-options | grep "in progress"

我的基础设施已设置为利用 --harmony 标志。我应该移除它吗?

Node.js 上 --harmony 标志的当前行为是仅启用 staged 特性。毕竟,它现在是 --es_staging 的同义词。如上所述,这些是已完成但尚未被认为稳定的特性。如果您想确保安全,尤其是在生产环境中,请考虑移除此运行时标志,直到它在 V8 中默认提供,并在 Node.js 中默认提供。如果您继续启用它,则应准备好应对进一步的 Node.js 升级可能会破坏您的代码,因为 V8 会更改其语义以更紧密地遵循标准。

如何查找特定 Node.js 版本附带的 V8 版本?

Node.js 提供了一种简单的方法,可以通过 process 全局对象列出特定二进制文件附带的所有依赖项及其各自的版本。对于 V8 引擎,在您的终端中输入以下内容即可检索其版本:

sh
node -p process.versions.v8