ECMAScript 2015
(简称
ES2015
)这个词,也是经常可以看到的。它与
ES6
是什么关系呢?
2011
年,
ECMAScript 5.1
版发布后,就开始制定
6.0
版了。因此,
ES6
这个词的原意,就是指
JavaScript
语言的下一个版本。
但是,因为这个版本引入的语法功能太多,而且制定过程当中,还有很多组织和个人不断提交新功能。
事情很快就变得清楚了,不可能在一个版本里面包括所有将要引入的功能。常规的做法是先发布
6.0
版,
过一段时间再发
6.1
版,然后是
6.2
版、
6.3
版等等。
但是,标准的制定者不想这样做。他们想让标准的升级成为常规流程:任何人在任何时候,都可以向标
准委员会提交新语法的提案,然后标准委员会每个月开一次会,评估这些提案是否可以接受,需要哪些
改进。如果经过多次会议以后,一个提案足够成熟了,就可以正式进入标准了。这就是说,标准的版本
升级成为了一个不断滚动的流程,每个月都会有变动。
标准委员会最终决定,标准在每年的
6
月份正式发布一次,作为当年的正式版本。接下来的时间,就在
这个版本的基础上做改动,直到下一年的
6
月份,草案就自然变成了新一年的版本。这样一来,就不需
要以前的版本号了,只要用年份标记就可以了。
ES6
的第一个版本,就这样在
2015
年
6
月发布了,正式名称就是《
ECMAScript 2015
标准》(简称
ES2015
)。
2016
年
6
月,小幅修订的《
ECMAScript 2016
标准》(简称
ES2016
)如期发布,这个版本
可以看作是
ES6.1
版,因为两者的差异非常小(只新增了数组实例的
includes
方法和指数运算符),基
本上是同一个标准。根据计划,
2017
年
6
月发布
ES2017
标准。
因此,
ES6
既是一个历史名词,也是一个泛指,含义是
5.1
版以后的
JavaScript
的下一代标准,涵盖了
ES2015
、
ES2016
、
ES2017
等等,而
ES2015
则是正式名称,特指该年发布的正式版本的语言标准。本
书中提到
ES6
的地方,一般是指
ES2015
标准,但有时也是泛指“下一代
JavaScript
语言”。