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
参数中使用 grep 命令来列出每个 Node.js 版本中可用的所有正在开发功能。请注意,这些是 V8 的不完整且可能存在问题的功能,因此请自行承担使用风险。
node --v8-options | grep "in progress"
我的基础设施已经设置好,可以利用 --harmony 标志。我应该移除它吗?
Node.js 上 --harmony
标志的当前行为是仅启用 **暂存** 功能。毕竟,它现在是 --es_staging
的同义词。如上所述,这些是已完成但尚未被认为稳定的功能。如果您想确保安全,尤其是在生产环境中,请考虑移除此运行时标志,直到它在 V8 上默认提供,进而也在 Node.js 上提供。如果您继续启用它,则应做好准备,以防 V8 更改其语义以更紧密地遵循标准,从而导致 Node.js 的进一步升级破坏您的代码。
如何查找特定版本的 Node.js 附带的 V8 版本?
Node.js 提供了一种简单的方法,可以通过 process
全局对象列出所有依赖项及其与特定二进制文件一起提供的版本。对于 V8 引擎,请在您的终端中键入以下内容以检索其版本
node -p process.versions.v8