Node.js对ES6 及更高版本的支持

Node.js是基于V8引擎构建的,它及时提供JavaScript的新功能。ECMAScript特性分为shipping、staged和inprogress三类。默认情况下,所有在V8中稳定的特性会被启用。不稳定的staged特性需要--harmony标记。开发者可以使用node.green查看不同Node.js版本的特性支持。通过node--v8-options可查看开发中的特性。--harmony标志应谨慎使用,因为它可能导致不稳定性。文章还提到,可通过process.versions.v8获取Node.js使用的V8版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、简介

2、默认情况下什么特性随着 Node.js 一起发布?

3、有哪些特性在开发中?

4、移除这个标记(--harmony)吗

5、Node.js 对应 V8 引擎


 

1、简介

Node.js 是针对 V8 引擎构建的。通过与此引擎的最新版本保持同步,我们确保及时向 Node.js 开发人员提供 JavaScript ECMA-262 specification 中的新功能,以及持续的性能和稳定性改进。

所有的 ECMAScript 2015 (ES6) 功能将被分为三个部分 shippingstaged 和 in progress

  • 所有 shipping:在 V8 引擎中认为是稳定的,转变成 Node.js 默认,并且 不会 需要任何运行时标记。
  • Staged:这些是将要完成的特性,并且在 V8 团队看来并不一定稳定,需要一个 --harmony 标记。
  • In progress:这些特性可以通过各自单独的 harmony 标记被激活使用。除非为了测试用途,否则绝不鼓励这样做。值得注意的是这些标记是由 V8 引擎公开,将来或许会有潜在的变化而不会有任何免责声明或者协议。

2、默认情况下什么特性随着 Node.js 一起发布?

node.green (https://node.green/) 提供了非常完整、几乎涵盖了不同版本的 Node.js 中所支持的 ECMAScript 特性。它基于 kangax 的兼容性对照表构建。

kangax 用于检查JavaScript版本(ES5,ES6,ES2016 +等)在不同编译器,服务器/运行时和平台(桌面和移动)之间的兼容性。

3、有哪些特性在开发中?

新特性源源不断地被加入 V8 引擎。一般说来,虽然具体的时间未知,但我们总希望他们将来在 Node.js 中有所体现。

在每个 Node.js 发布版中,你可以通过 greep 配上 --v8-options 参数罗列出全部处于 in progress 状态的特性功能。请注意:他们尚未完成,可能因为 V8 引擎自带的功能而夭折。所以使用这些特性时会冒风险。

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

88ce72ae3134475f809d67c34c4157b4.png

4、移除这个标记(--harmony)吗

目前来说,--harmony 在 Node.js 的作用是让 staged 特性起作用。它本质上等同于 --es_staging。如上所述,有些特性尚未完全确认是稳定的,所以如果你希望一个安全的环境(尤其是在发布环境),你应该考虑移除这个运行时的环境标记,直到它在 V8 中以默认形式发布,或者在 Node.js 中落地。如果你开启了这个开关,你应该有对未来 Node.js 升级而造成代码破坏(无法正常工作)的准备,比如 V8 引擎做了更改,它的语法变得更接近标准。

5、Node.js 对应 V8 引擎

Node.js 提供了一个简单的方法以列出所有依赖项,以及通过 process 全局对象,借助特定的二进制包发布的不同版本。由于是 V8 引擎,在你的终端输入以下命令就可以获取相关版本号:

node -p process.versions.v8

例如我的node版本为v16.16.0,对应的v8引擎版本为:9.4.146.24-node.21

ac7e239c43ee44baa3f51587ef5a015e.png

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

和你一起去月球

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值