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
,第六版发布以后,就指
ES7
。
TC39
的判断是,
ES5
会在
2013
年的年中成为
JavaScript
开发的主流标准,并在此后五年中一直保持这个位置。
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
年。