ECMAScript 2015 (ES6) in Node.js(译)

本文作者:IMWeb link 原文出处:IMWeb社区 未经同意,禁止转载

原文:https://nodejs.org/en/docs/es6/

ECMAScript 2015 (ES6) in Node.js(译)

Node.js是建立在V8引擎的基础上。通过保持对该引擎最新发布版的更新,我们可以确保能够将JavaScript ECMA-262 specification 中的新特性能够及时的提供给Node.js开发者们,就像我们借助该引擎保持性能和稳定性的持续改进一样。 所有ECMAScript2015(ES6)特性被分为 shipping, stagedin progress三个部分:

  • shipping特性是V8认为已经稳定的特性,Node.js默认提供这些特性,而不需要额外的运行时标志位来开启。
  • Staged特性,是V8团队认为已经几乎完成但还不够稳定的特性,需要用运行时标志位: --es_staging (或者它的同义词, --harmony)来开启这些特性。
  • In progress特性可以分别通过它们各自harmony标志位来开启(例如:--harmony_destructuring),但是强烈不建议使用它们,除非只是出于测试的目的。

有哪些特性在Node.js中是默认开启的(不需要设置运行时标志位)?

傻逼了,文章都还没写完,Node.js 6.0+就出来了!号称覆盖93%的ES6特性!这不是打我的脸嘛!

哪些特性还是在未完成状态?

新的特性正在不断地加入V8引擎。一般来说,虽然这些新特性未来在Node.js中落地的时间并不确定,但是我们依然可以抱有期待。 你可以通过--v8-options参数在列出Node.js各个发行版中的进行中的特性。但需要注意的是,这些特性并没有完成,并且有在未来被V8废弃的风险,所以你需要自己承担使用它们的风险。

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

我现有的生产环境中已经使用了--harmony标志位,我应该移除它吗?

--harmony标志位在当前版本的Node.js中已经成了过去式。在这之后,我们可以使用它的同义词--es_staging。如前所述,有一些已经完成的特性,还没有被考虑为stable状态。如果你想安全地使用它们,特别是在生产环境中使用它们,最好等到V8和Nodejs将它们设置为默认属性后,并且可以不再使用运行时标志位来开启它们。如果你坚持开启这个标志位,你需要做好未来V8升级后会破坏你目前代码的准备,因为V8有可能改变这些特性的语义,而使它们更加接近标准。

我怎么确定特定版本的Node.js使用的是哪一个版本的V8引擎?

Node.js提供了一个简单的方法来列举V8引擎的版本号:

node -p process.versions.v8

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小尘哥的专栏

thymeleaf全局常量定义

目测应该是重写这货就可以了,talk is cheap,show me the code

1211
来自专栏逸鹏说道

C# 温故而知新: 线程篇(三)上

线程同步篇 (上) 线程同步中的一些重要概念 临界区(共享区)的概念 基元用户模式 基元内核模式 原子性操作 非阻止同步 阻止同步 详解Thread...

2896
来自专栏Janti

Java基础巩固计划

3.26-4.1 JVM 虚拟机的内容写五篇博客 解决以下问题: 1. Java的内存模型以及GC算法 2. jvm性能调优都做了什么 3. 介绍JVM中7个区...

4647
来自专栏FreeBuf

Python黑客学习笔记:从HelloWorld到编写PoC(上)

本系列文章适合CS在读学生和万年工具党,本文会在英文原文的基础上做些修改,并适当增加些解释说明。 ? 本篇包含原文的前几部分: 0x0 – Getting St...

29210
来自专栏后端技术探索

反射机制、依赖注入、控制反转

反向: dll->类[方法,属性]. 从已经有的dll文件反编译得到其中的一些可用的方法.

932
来自专栏武培轩的专栏

Keep面经汇总

原理:泛型的实现是靠类型擦除技术,类型擦除是在编译期完成的,在编译期,编译器会将泛型的类型参数都擦除成它的限定类型,如果没有则擦除为object类型之后在获取的...

1282
来自专栏纯洁的微笑

jvm系列(二):JVM内存结构

所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢?其实...

4254
来自专栏Java成长之路

二、OutOfMemoryError实战

本文通过一些可执行代码来验证异常发生的场景,并且会初步介绍几个与内存相关的最基本的虚拟机参数。 本文的主要目的有两个: 1. 通过代码验证Java虚拟机...

1752
来自专栏腾讯IVWEB团队的专栏

ECMAScript 2015 (ES6) in Node.js(译)

Node.js是建立在V8引擎的基础上。通过保持对该引擎最新发布版的更新,我们可以确保能够将JavaScript ECMA-262 specification中...

1740
来自专栏zhisheng

Java研发方向如何准备BAT技术面试答案(上)

1. 面向对象和面向过程的区别 面向过程 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Un...

4494

扫码关注云+社区

领取腾讯云代金券