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

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

1、简介

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

所有的 ECMAScript 2015 (ES6) 功能将被分为三个部分 shipping,staged 和 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"

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

 

 

相关文章
|
2天前
|
存储 JavaScript 索引
js开发:请解释什么是ES6的Map和Set,以及它们与普通对象和数组的区别。
ES6引入了Map和Set数据结构。Map的键可以是任意类型且有序,与对象的字符串或符号键不同;Set存储唯一值,无重复。两者皆可迭代,支持for...of循环。Map有get、set、has、delete等方法,Set有add、delete、has方法。示例展示了Map和Set的基本操作。
23 3
|
2天前
|
JavaScript Windows
Win7内网安装高版本的Node方法,亲测有效node-v16.16.0
Win7内网安装高版本的Node方法,亲测有效node-v16.16.0
69 0
|
2天前
|
资源调度 jenkins 持续交付
jenkins 自动安装nodejs16.16.0版本报错处理
jenkins 自动安装nodejs16.16.0版本报错处理
31 0
|
2天前
【Node】Mac多版本Node切换
【Node】Mac多版本Node切换
10 1
|
2天前
node node-sass sass-loader版本对应问题,对于npm编译大家经常遇到这个问题
node node-sass sass-loader版本对应问题,对于npm编译大家经常遇到这个问题
|
2天前
|
JSON JavaScript 前端开发
js的版本
【5月更文挑战第7天】js的版本
10 1
|
2天前
|
JavaScript 前端开发 Linux
|
2天前
|
JavaScript 前端开发
js开发:请解释什么是ES6的Generator函数,以及它的用途。
ES6的Generator函数是暂停/恢复功能的特殊函数,利用yield返回多个值,适用于异步编程和流处理,解决了回调地狱问题。例如,一个简单的Generator函数可以这样表示: ```javascript function* generator() { yield 'Hello'; yield 'World'; } ``` 创建实例后,通过`.next()`逐次输出"Hello"和"World",展示其暂停和恢复的特性。
20 0
|
2天前
|
JavaScript 前端开发
JavaScript高级主题:什么是 ES6 的解构赋值?
【4月更文挑战第13天】ES6的解构赋值语法简化了从数组和对象中提取值的过程,提高代码可读性。例如,可以从数组`[1, 2, 3]`中分别赋值给`a`, `b`, `c`,或者从对象`{x: 1, y: 2, z: 3}`中提取属性值给同名变量。
18 6
|
2天前
|
存储 JavaScript 网络安全
电脑上安装多个nodeJS版本实现一键切换
电脑上安装多个nodeJS版本实现一键切换
41 1