ECMAScript 4.0

ECMAScript 4.0从2000年开始酝酿。但是这个版本最后没有通过, 不过它的大部分内容被ES6继承了。 因此,ES6制定的起点其实是2000年。

为什么ECMAScript 4.0没有通过呢?因为这个版本太激进了,对ECMAScript 3.0做了彻底升级, 导致TC39的一些成员不愿意接受。

2007年10月,ECMAScript 4.0版草案发布,本来预计次年8月发布正式版本。但是, 各方对于是否通过这个标准,发生了严重分歧。以YahooMicrosoftGoogle为首的大公司, 反对大幅升级,主张小幅改动;以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委员会的总体考虑是:ES5ES3基本保持兼容, 较大的语法修正和新功能加入,将由JavaScript.next完成。 当时,JavaScript.next指的是ES6,第六版发布以后, 就指ES7TC39的判断是,ES5会在2013年的年中成为JavaScript开发的主流标准,并在此后五年中一直保持这个位置。