1.1.1 JavaScript的起源
JavaScript语言的前身是LiveScript语言,是由美国Netscape(网景)公司的布兰登·艾奇(Brendan Eich)为1995年发布的Navigator 2.0浏览器的应用而开发的脚本语言。后来Netscape公司与Sun(升阳)公司(现已被Oracle,即甲骨文公司收购)合作,在Navigator 2.0正式发布前,将LiveScript改名为JavaScript,也就是最初的JavaScript 1.0。虽然当时该版本还存在很多缺陷,却丝毫不影响以JavaScript 1.0为基础的Navigator 2.0在浏览器市场上占据主宰地位。
因为JavaScript 1.0非常成功,所以Netscape公司在Navigator 3.0中发布了JavaScript 1.1。同时Microsoft(微软)公司开始进军浏览器市场,发布了Internet Explorer 3.0并搭载了一个JavaScript的类似版本,其注册名称为JScript。这成为JavaScript语言发展过程中的重要一步。
在Microsoft公司进入浏览器市场后,有3种不同的JavaScript版本同时存在,Navigator中的JavaScript、IE中的JScript以及CEnvi中的ScriptEase。与其他编程语言不同的是,JavaScript的语法或特性没有统一的标准,而这3种不同的版本恰恰凸显了这个问题。1997年,JavaScript 1.1作为一个草案被提交给欧洲计算机制造商协会(ECMA)。最终,由来自Netscape、Sun、Microsoft、Borland和其他一些对脚本编程感兴趣的公司的程序员组成了TC39委员会,以制定一个标准化的,可通用、跨平台,中立于厂商的脚本语言。TC39委员会制定了《ECMAScript程序语言的规范书》(又称为“ECMA-262标准”),该标准被国际标准化组织(ISO)采纳,成为各种浏览器生产开发所使用的脚本程序的统一标准。
ECMAScript可以理解为JavaScript的一个标准。截至2012年,所有浏览器都完整地支持ECMAScript 5.1,旧版本的浏览器至少支持ECMAScript 3标准。2015年6月17日,ECMA发布了ECMAScript的第6版,该版本正式名称为ECMAScript 2015,但通常被称为ECMAScript 6或者ES2015。自2015年以来,TC39委员会成员每年都会一起讨论可用的提案,并发布已接受的提案。2021年6月22日,第121届Ecma国际(Ecma International)大会以远程会议形式召开。ECMAScript 2021(ES12)成为事实的ECMAScript标准,并被写入ECMA-262第12版。2022年6月22日,第123届Ecma国际大会批准了ECMAScript 2022语言规范,这意味着其正式成为标准。