阅读 67

留给自己的猿生活——ECMAScript6笔记

一、ECMAScript 6 简介

  1. ECMAScript 和JavaScript的关系

    ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 JScript 和 ActionScript)

  2. 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 则是正式名称,特指该年发布的正式版本的语言标准。

  3. 各大浏览器对 ES6 的支持可以查看kangax.github.io/compat-tabl…

  4. Node.js 是 JavaScript 的服务器运行环境(runtime)。它对 ES6 的支持度更高。除了那些默认打开的功能,还有一些语法功能已经实现了,但是默认没有打开。使用下面的命令,可以查看 Node.js 默认没有打开的 ES6 实验性语法

  5. Node.js 是 JavaScript 的服务器运行环境(runtime)。它对 ES6 的支持度更高。除了那些默认打开的功能,还有一些语法功能已经实现了,但是默认没有打开。使用下面的命令,可以查看 Node.js 默认没有打开的 ES6 实验性语法。

    // Linux & Mac
    $ node --v8-options | grep harmony
       
    // Windows
    $ node --v8-options | findstr harmony
    复制代码