JavaScript 问世后,微软在 Internet Explorer 3.0(1996 年 8 月)中以不同的名称 JScript 实现了相同的语言。为了在一定程度上牵制微软,网景决定将 JavaScript 标准化,并要求标准组织 Ecma 国际 来托管该标准。1996 年 11 月,一项名为 ECMA-262 的规范开始制定。由于 Sun(现为 Oracle)拥有 JavaScript 一词的商标,因此它不能成为要标准化的语言的官方名称。因此,选择了 ECMAScript,它源自 JavaScript 和 Ecma。但是,该名称仅用于指代语言的版本(指的是规范)。每个人仍然将该语言称为 JavaScript。
ECMA-262 由 Ecma 的 第 39 技术委员会(TC39)管理和发展。其成员包括微软、Mozilla 和谷歌等公司,这些公司指派员工参与委员会工作;例如 Brendan Eich、Allen Wirfs-Brock(ECMA-262 的编辑)和 David Herman。为了推进 ECMAScript 的设计,TC39 在公开渠道(例如邮件列表 es-discuss)上进行讨论,并定期举行会议。TC39 成员和受邀专家出席会议。2013 年初,与会人数在 15 到 25 人之间。
以下是 ECMAScript 版本(或 ECMA-262 的 版本)及其 主要功能的列表:
do-while
、正则表达式、新的字符串方法(concat
、match
、replace
、slice
、带有正则表达式的 split
等)、异常处理等等ECMAScript 4 被开发为 JavaScript 的下一个版本,其原型是用 ML 编写的。但是,TC39 无法就其功能集达成一致。为了防止僵局,委员会于 2008 年 7 月底举行会议并达成协议,总结为 四点
因此,ECMAScript 4 的开发人员同意使 Harmony 不那么激进,而 TC39 的其他成员则同意继续推进工作。
达成共识并制定标准并不总是那么容易,但由于上述各方的共同努力,JavaScript 是一种真正开放的语言,多个供应商的实现具有显著的兼容性。这种兼容性是通过非常详细而具体的规范实现的。例如,规范经常使用伪代码,并且辅以测试套件 test262,该套件检查 ECMAScript 实现是否符合规范。值得注意的是,ECMAScript 不是由万维网联盟(W3C)管理的。TC39 和 W3C 在 JavaScript 和 HTML5 重叠的地方进行合作。