1.4 ECMAScript的历史
ES6从开始制定到最后发布,整整用了15年。
前面提到,ECMAScript 1.0是1997年发布的,接下来的两年连续发布了ECMAScript 2.0 (1998年6月)和ECMAScript 3.0(1999年12月)。3.0版是一个巨大的成功,在业界得到广泛支持,成为通行标准,它奠定了 JavaScript 语言的基本语法,被其后的版本完全继承。直到今天,初学者一开始学习JavaScript,其实就是在学习3.0版的语法。
2000年,ECMAScript 4.0开始酝酿。这个版本最后没有通过,但其大部分内容被ES6所继承。因此,ES6制定的起点其实是在2000年。
为什么ES4没有通过呢?因为这个版本太激进了,对ES3做了彻底升级,导致标准委员会的一些成员不愿意接受。ECMA的第39号技术专家委员会(Technical Committee 39,简称TC39)负责制订ECMAScript标准,成员包括Microsoft、Mozilla、Google等大公司。
2007年10月,ECMAScript 4.0版草案发布,本来预计次年8月发布正式版本。但是,各方对于是否通过这个标准,发生了严重分歧。以Yahoo、Microsoft、Google为首的大公司,反对JavaScript的大幅升级,主张小幅改动;以JavaScript创造者Brendan Eich为首的Mozilla公司,则坚持当前的草案。
2008年7月,由于对于下一个版本应该包括哪些功能,各方分歧太大,争论过于激烈,ECMA开会决定,中止 ECMAScript 4.0 的开发,将其中涉及现有功能改善的一小部分发布为ECMAScript 3.1,而将其他激进的设想扩大范围,放入以后的版本,由于会议的气氛,该版本的项目代号为Harmony(和谐)。会后不久,ECMAScript 3.1就改名为ECMAScript 5了。
2009年12月,ECMAScript 5.0版正式发布。Harmony项目则一分为二,一些较为可行的设想定名为JavaScript.next继续开发,后来演变成ECMAScript 6;一些不是很成熟的设想则被视为JavaScript.next.next,在更远的将来再考虑推出。TC39 委员会的总体考虑是,ES5 与ES3基本保持兼容,较大的语法修正和新功能的加入,将由JavaScript.next完成。当时,JavaScript.next指的是ES6,第6版发布以后就指ES7。TC39的判断是,ES5会在2013年的年中成为JavaScript开发的主流标准,并在此后5年中一直保持这个位置。
2011年6月,ECMAscript 5.1版发布,并且成为ISO国际标准(ISO/IEC 16262:2011)。
2013年3月,ECMAScript 6草案冻结,不再添加新功能。新的功能设想将被放到ECMAScript 7中。
2013年12月,ECMAScript 6草案发布。此后是12个月的讨论期,以听取各方反馈意见。
2015年 6 月,ECMAScript 6正式通过,成为国际标准。从 2000 年算起,已经过去了15年。