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 代码。