1.1 JavaScript 简史
当时就职于 Netscape 公司的布兰登·艾奇(Brendan Eich),开始着手为计划于 1995 年 2 月发布的Netscape Navigator 2 开发一种名为 LiveScript 的脚本语言——该语言将同时在浏览器和服务器中使用(它在服务器上的名字叫 LiveWire)。为了赶在发布日期前完成 LiveScript 的开发, Netscape 与 Sun 公司建立了一个开发联盟。在 Netscape Navigator 2 正式发布前夕,Netscape 为了搭上媒体热炒 Java 的顺风车,临时把 LiveScript 改名为 JavaScript。
由于 JavaScript 1.0 获得了巨大成功,Netscape 随即在 Netscape Navigator 3 中又发布了 JavaScript 1.1。Web 虽然羽翼未丰,但用户关注度却屡创新高。在这样的背景下, Netscape 把自己定位为市场领袖型公司。与此同时,微软决定向与 Navigator 竞争的自家产品 Internet Explorer 浏览器投入更多资源。 NetscapeNavigator 3 发布后不久,微软就在其 Internet Explorer 3 中加入了名为 JScript 的 JavaScript 实现(命名为JScript 是为了避开与 Netscape 有关的授权问题)。以现在的眼光来看,微软 1996 年 8 月为进入 Web 浏览器领域而实施的这个重大举措,是导致 Netscape 日后蒙羞的一个标志性事件。然而,这个重大举措同时也标志着 JavaScript 作为一门语言,其开发向前迈进了一大步。
微软推出其 JavaScript 实现意味着有了两个不同的 JavaScript 版本: Netscape Navigator 中的JavaScript、 Internet Explorer 中的 JScript。与 C 及其他编程语言不同,当时还没有标准规定 JavaScript 的语法和特性,两个不同版本并存的局面已经完全暴露了这个问题。随着业界担心的日益加剧, JavaScript的标准化问题被提上了议事日程。
1997 年,以 JavaScript 1.1 为蓝本的建议被提交给了欧洲计算机制造商协会(ECMA, EuropeanComputer Manufacturers Association) 。该协会指定 39 号技术委员会(TC39, Technical Committee #39)负 责 “ 标 准 化 一 种 通 用 、 跨 平 台 、 供 应 商 中 立 的 脚 本 语 言 的 语 法 和 语 义 ” (http://www.ecmainternational.org/memento/TC39.htm)。 TC39 由来自 Netscape、 Sun、微软、 Borland 及其他关注脚本语言发展的公司的程序员组成,他们经过数月的努力完成了 ECMA-262——定义一种名为 ECMAScript(发音为“ ek-ma-script”)的新脚本语言的标准。
第二年, ISO/IEC(International Organization for Standardization and International Electrotechnical Commission,国标标准化组织和国际电工委员会)也采用了 ECMAScript 作为标准(即 ISO/IEC-16262)。自此以后,浏览器开发商就开始致力于将 ECMAScript 作为各自 JavaScript 实现的基础,也在不同程度上取得了成功。