1.2 ES6与ECMAScript 2015的关系
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语言”。