# 介绍
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会)在标准ECMA-262中定义的脚本语言规范。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的实现和扩展。
# 历史
至发稿日为止有九个ECMA-262版本发表。其历史版本如下:
- 1997年6月:第一版
- 1998年6月:修改格式,使其与ISO/IEC16262国际标准一样
- 1999年12月:强大的正则表达式,更好的词法作用域链处理,新的控制指令,异常处理,错误定义更加明确,数据输出的格式化及其它改变
- 2009年12月:添加严格模式("use strict")。修改了前面版本模糊不清的概念。增加了getters,setters,JSON以及在对象属性上更完整的反射。
- 2011年6月:ECMAScript标5.1版形式上完全一致于国际标准ISO/IEC 16262:2011。
- 2015年6月:ECMAScript 2015(ES2015),第 6 版,最早被称作是 ECMAScript 6(ES6),添加了类和模块的语法,其他特性包括迭代器,Python风格的生成器和生成器表达式,箭头函数,二进制数据,静态类型数组,集合(maps,sets 和 weak maps),promise,reflection 和 proxies。作为最早的 ECMAScript Harmony 版本,也被叫做ES6 Harmony。
- 2016年6月:ECMAScript 2016(ES2016),第 7 版,多个新的概念和语言特性。
- 2017年6月:ECMAScript 2017(ES2017),第 8 版,多个新的概念和语言特性。
- 2018年6月:ECMAScript 2018 (ES2018),第 9 版,包含了异步循环,生成器,新的正则表达式特性和 rest/spread 语法。
- 2019年6月:ECMAScript 2019 (ES2019),第 10 版。
# 发展标准
TC39(Technical Committee 39)是一个推动JavaScript发展的委员会,它的成员来自各个主流浏览器的代表成员。会议实行多数决,每一项决策只有大部分人同意且没有强烈反对才能去实现。 TC39成员制定着ECMAScript的未来。 每一项新特性最终要进入到ECMAScript规范里,需要经历5个阶段,这5个阶段如下:
Stage 0: Strawperson 只要是TC39成员或者贡献者,都可以提交想法
Stage 1: Proposal 这个阶段确定一个正式的提案
Stage 2: draft 规范的第一个版本,进入此阶段的提案大概率会成为标准
Stage 3: Candidate 进一步完善提案细则
Stage 4: Finished 表示已准备好将其添加到正式的ECMAScript标准中
由于ES6以前的属性诞生年底久远,我们使用也比较普遍,遂不进行说明,ES6之后的语言风格跟ES5以前的差异比较大,所以单独拎出来做个记录。
# ES6 大纲
- ES6 (ES2015)
- 类
- 模块化
- 箭头函数
- 函数参数默认值
- 模板字符串
- 解构赋值
- 扩展操作符
- 对象属性简写
- Promise
- let 与 const
- ES2015
# 推荐阅读
← Javascript-其他类问题 ES7+ →