ECMAScript 4.0
从2000年开始酝酿。但是这个版本最后没有通过, 不过它的大部分内容被ES6继承了。 因此,ES6制定的起点其实是2000年。
为什么ECMAScript 4.0
没有通过呢?因为这个版本太激进了,对ECMAScript 3.0
做了彻底升级, 导致TC39
的一些成员不愿意接受。
2007年10月,ECMAScript 4.0
版草案发布,本来预计次年8月发布正式版本。但是, 各方对于是否通过这个标准,发生了严重分歧。以Yahoo
、Microsoft
、Google
为首的大公司, 反对大幅升级,主张小幅改动;以JavaScript
的创造者Brendan Eich
为首的Mozilla
公司,则坚持当前的草案。
2008年7月,由于对于ECMAScript 4.0
应该包括哪些功能,各方分歧太大,争论过于激烈,TC39
最终开会决定 中止ECMAScript 4.0
的开发,将其中涉及现有功能改善的一小部分,发布为ECMAScript 3.1
, 而将其他激进的设想扩大范围,放入以后的版本。由于会议的气氛,该版本的项目代号起名为Harmony(和谐)。 会后不久,ECMAScript 3.1
就改名为ECMAScript 5.0
。
2009年12月,ECMAScript 5.0
版正式发布。Harmony项目则一分为二, 一些较为可行的设想定名为JavaScript.next
继续开发,后来演变成ES6; 一些不是很成熟的设想,则被视为JavaScript.next.next
,在更远的将来再考虑推出。TC39
委员会的总体考虑是:ES5
与ES3
基本保持兼容, 较大的语法修正和新功能加入,将由JavaScript.next
完成。 当时,JavaScript.next
指的是ES6,第六版发布以后, 就指ES7。TC39
的判断是,ES5
会在2013年的年中成为JavaScript
开发的主流标准,并在此后五年中一直保持这个位置。