Skip to content

ES6+ 简介

ECMAScript 6, 简称 ES6。 于2015年6月正式发布,是 JavaScript 语言的下一代标准。

官方地址:https://www.ecma-international.org/technical-committees/tc39/

铭哥教程:https://learn.fuming.site/front-end/es6/

阮一峰教程:https://es6.ruanyifeng.com/

js
程序员:用最简短的语句表达准确的意思。仅仅记忆字符串的功能,用的时候再查找

兼容性

js
http://kangax.github.io/es5-compat-table/es6/ 可以查看各大平台对ES6的支持情况。
目前最新版的各大浏览器,尤其是 Chrome 已经能够支持大部分ES6的语法。
node.js 也支持 ES6 大部分的语法, http://node.green/ 上可以看到node对ES6的支持情况
可以使用 Babel 转码器将 ES6 代码转换成浏览器兼容性更好的 ES5 代码。

严格模式

js
use strict

//严格模式下不允许八进制定义方式

//函数内变量必须加 var,不加var 相当于全局变量。

ECMAScript 和 JavaScript

  • ECMA(European Computer Manufactures Association )是欧洲计算机标准化协会的简称。
  • 1996年JavaScript的创造者 Netspace(网景公司),将JavaScript提交给ECMA进行管理,希望JavScript能够成为国际标准。
  • 1997年 ECMA 发布 262 号标准文件,规定了浏览器脚本语言的标准,将其命名为 ECMAScript。
  • ECMAScript 是 JavaScript 的规格,JavaScript 是 ECMAScript 的的一种实现。另外,以ECAMScript为规格的语言还有 JScript 和 ActionScript。

ES6 和 ES2015

  • ES6 的第一个版本在2015年6发布,正式名称是《ECMAScript 2015标准》,故也称之为 ECMAScript 2015,简称 ES2015。
  • 此后,每年的6月都会发布新的版本,2016年6月发布了 ES2016,也被称之为 ES7;2017年6月发布了ES2017,也被称之为ES8。
  • ES6 在原先的 ES5 基础上加入了大量的新特性,但是此后的版本只是进行了小幅修订,所以有时候我们使用 ES6 来代指 ES6 以及之后的版本

ECMAScript 时间节点

  • ECMAScript 1(1997 年 6 月):规范第一版。
  • ECMAScript 2(1998 年 6 月):为了同步 ISO 标准,引入了一些小更新。
  • ECMAScript 3(1999 年 12 月): 3.0 版本是一个巨大的成功,得到了广泛的支持,奠定了JavaScript的基础,我们一开始学习的JavaScript 其实就是3.0版本。
  • ECMAScript 4(2008 年 7 月废除):本来是一次大规模升级(静态类型、模块、命名空间等),但跨度过大,出现了分歧,最终没能推广使用。
  • ECMAScript 5(2009 年 12 月):变化不大,加了一些标准库特性和严格模式。
  • ECMAScript 5.1(2011 年 6 月):又一次小更新,为了同步 ISO 标准。
  • ECMAScript 6(2015 年 6 月):一大波更新,实现了当年 ES4 的许多设想,并正式改为按年份命名规范版本。
  • ECMAScript 2016(2016 年 6 月):第一个年度版本,与 ES6 相比,发布周期较短,新特性也相对少些。
  • ECMAScript 2017(2017 年 6 月):第二个年度版本。
  • 以后的 ECMAScript 版本(ES2018、ES2019、ES2020、ES2021、ES2022等)都在 6 月正式获准生效。

ECMAScript 语法标准制定流程

任何人都可以向标准委员会(又称 TC39 委员会)提案,要求修改语言标准。一种新的语法从提案到变成正式标准,需要经历五个阶段:

  • Stage 0 - Strawman(展示阶段)
  • Stage 1 - Proposal(征求意见阶段)
  • Stage 2 - Draft(草案阶段)
  • Stage 3 - Candidate(候选人阶段)
  • Stage 4 - Finished(定案阶段)

只要进入第 4 阶段就已经算是标准特性了,会在下一个 6 月正式纳入标准

ECMAScript 当前的所有提案,可以在 TC39 的官方网站 GitHub.com/tc39/ecma262 查看。

ES6 的兼容性问题

  • http://kangax.github.io/es5-compat-table/es6/ 可以查看各大平台对ES6的支持情况。
  • 目前最新版的各大浏览器,尤其是 Chrome 已经能够支持大部分ES6的语法。
  • node.js 也支持 ES6 大部分的语法, http://node.green/ 上可以看到node对ES6的支持情况
  • 可以使用 Babel 转码器将 ES6 代码转换成浏览器兼容性更好的 ES5 代码。

参考网站