历史
1995年,网景招募了布兰登·艾克,艾克在1995年5月花了十天时间把原型设计出来。
最初定js的名字是LiveScript,想用于在1995年发行的Netscape Navigator 2.0,目的是在浏览器和服务器(本来要叫它 LiveWire)端使用它。但是在 Netscape Navigator 2.0 即将正式发布前,Netscape 将其更名为 JavaScript,目的是为了利用Java这个因特网时髦词汇。Netscape 的赌注最终得到回报,JavaScript从此变成了因特网的必备组件。
因为 JavaScript 1.0 如此成功,Netscape 在 Netscape Navigator 3.0中发布了 1.1 版。恰巧那个时候,微软决定进军浏览器,发布了 IE 3.0 并搭载了一个 JavaScript 的克隆版,叫做 JScript(这样命名是为了避免与 Netscape 潜在的许可纠纷)。微软步入Web浏览器领域的这重要一步虽然令其声名狼藉,但也成为JavaScript语言发展过程中的重要一步。
在微软进入后,有 3 种不同的 JavaScript 版本同时存在:Netscape Navigator 3.0 中的 JavaScript、IE 中的 JScript 以及 CEnvi 中的 ScriptEase。与 C 和其他编程语言不同的是,JavaScript 并没有一个标准来统一其语法或特性,而这 3 种不同的版本恰恰突出了这个问题。随着业界担心的增加,这个语言的标准化显然已经势在必行。
1997 年,JavaScript 1.1 作为一个草案提交给欧洲计算机制造商协会(ECMA)。第 39 技术委员会(TC39)被委派来标准化一个通用、跨平台、中立于厂商的脚本语言的语法和语义。由来自 Netscape、Sun、微软、Borland 和其他一些对脚本编程感兴趣的公司的程序员组成的 TC39 锤炼出了 ECMA-262,该标准定义了名为 ECMAScript 的全新脚本语言。
第二年,国际标准化组织及国际电工委员会(ISO/IEC)也采纳 ECMAScript 作为标准(ISO/IEC-16262)。从此,Web浏览器就开始努力(虽然有着不同的程度的成功和失败)将 ECMAScript 作为 JavaScript 实现的基础。
时间线
| 时间 | 事件 |
|---|---|
| 1906 | 国际电工委员会(IEC)成立 |
| 1946 | ISO国际标准组织成立 |
| 1961 | 欧洲计算机制造联合会(ECMA)成立 |
| 1994 | Netscape Navigator 0.9发布 |
| 1995.5 | js 1.0编写完成 |
| 1997 | EMCAScript标准产生 |
| 1998 | ISO及IEC采纳ECMAScript作为标准 |
| 1998.6 | ECMAScript 2.0版发布 |
| 1999.12 | ECMAScript 3.0版发布,成为JavaScript的通行标准,得到了广泛支持。强大的正则表达式,更好的文字链处理,新的控制指令,异常处理,错误定义更加明确,数输出的格式化及其它改变 |
| 2007.10 | ECMAScript 4.0版草案发布,对3.0版做了大幅升级,预计次年8月发布正式版本。草案发布后,由于4.0版的目标过于激进,各方对于是否通过这个标准,发生了严重分歧。以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,在更远的将来再考虑推出。 |
| 2011.6 | ECMAscript 5.1版发布,并且成为ISO国际标准(ISO/IEC 16262:2011)。 |
| 2013.3 | ECMAScript 6草案冻结,不再添加新功能。新的功能设想将被放到ECMAScript 7。 |
| 2013.12 | ECMAScript 6草案发布。然后是12个月的讨论期,听取各方反馈。 |
| 2015.6.17 | ECMAScript 6发布正式版本,即ECMAScript 2015。 |
| 2016.6 | ECMAScript 7发布正式版本,即ECMAScript 2016。 |