💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[toc] ## ECMAScript 5.1与ES6 ![](https://box.kancloud.cn/787d544c0654c733e8be077b4f5639c1_1041x587.png) ## 语法提案的批准流程 ![](https://box.kancloud.cn/f2aa381c4a17b3d2eea9befc4d394423_906x389.png) ## ECMAScript 的历史 1.0(1997) -> 2.0(1998.6) -> 3.0(1999.12) ->3.1(2008.7) -> 5.0(2009.12) -> 6.0(2015.6) ES6 从开始制定到最后发布,整整用了15年。 前面提到,`ECMAScript 1.0` 是 1997年发布的,连续发布了ECMAScript2.0(1998年6月)和`ECMAScript 3.0`(1999年12月)。`3.0`版是一个巨大的成功,在业界得到广泛支持,成为同行标准,奠定了 Javascript 语言的基本语法,以后的版本完全继承。直到今天,初学者一开始学习 JavasScript,其实就是在学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开会决定,中止ECMAScript4.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月,ECMAScirpt 5.1 版发布,并且成为 ISO 国际标准(ISO/IEC 16262:2011)。 2013 年 3月,ECMAScript6 草案冻结,不再添加新功能。新的功能设想将被放到ECMAScript 7. 2013 年 12月,ECMAScript 6 草案发布。然后是12个月的讨论期,听取各方反馈。 2015 年 6 月,ECMAScript 6 正式通过,成为国际标准。从2000 年算起,这是已经过去了15年。