一、ECMAScript 6 简介
-
ECMAScript 和JavaScript的关系
ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 JScript 和 ActionScript)
-
ES6与ECMAScript 2015的关系
2011年ECMA组织发布了ECMAScript 5.1,按道理会随着一个软件项目升级版本号一直递增下去 5.2、5.3...大版本6.0等等。但是ECMA组织在规划6.0时因为提及的新内容过多,被认为不能一次性发布完。同时组织希望让标准的升级成为一个常规流程:
- 任何人都可向组织提交新语法提案,委员会每月开会评审提案决定接受和改进
- 提案足够成熟后正式进入标准
- 标准委员会决定每年的6月份发布一次以往一年成为标准的内容作为当年的版本
之后的发布流程变成了:
2015年6月发布了《ECMAScript 2015 标准》(简称 ES2015)作为了ES6的第一个版本
2016年6月发布了《ECMAScript 2016 标准》(简称 ES2016) 可看作ES6.1版,但是此版本与ES2015的差异非常小,基本上时同一个标准
2017 年 6 月发布《ECMAScript 2017 标准》(简称 ES2017)
因此,ES6 既是一个历史名词,也是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了 ES2015、ES2016、ES2017 等等,而 ES2015 则是正式名称,特指该年发布的正式版本的语言标准。
-
各大浏览器对 ES6 的支持可以查看kangax.github.io/compat-tabl…。
-
Node.js 是 JavaScript 的服务器运行环境(runtime)。它对 ES6 的支持度更高。除了那些默认打开的功能,还有一些语法功能已经实现了,但是默认没有打开。使用下面的命令,可以查看 Node.js 默认没有打开的 ES6 实验性语法
-
Node.js 是 JavaScript 的服务器运行环境(runtime)。它对 ES6 的支持度更高。除了那些默认打开的功能,还有一些语法功能已经实现了,但是默认没有打开。使用下面的命令,可以查看 Node.js 默认没有打开的 ES6 实验性语法。
// Linux & Mac $ node --v8-options | grep harmony // Windows $ node --v8-options | findstr harmony