1.1 JavaScript发展历史
为了发挥JavaScript的全部潜力,了解它的本质、历史及局限性是十分重要的。本节将简单介绍JavaScript和客户端脚本的起源。
1.1.1 第一个网页脚本语言
1992年,一家名为Nombas的公司开发了一个叫做C减减(C-minus-minus,简称Cmm)的嵌入式脚本语言。Cmm的设计理念很简单:开发一个足够强大、可以替代宏操作(macro)的脚本语言,同时保持与C(和C ++)足够的相似性,以便开发人员能很快学会。
这个脚本语言被捆绑在一个叫做CEnvi的共享软件中,它首次向开发人员展示了强大威力。后来,Nombas把Cmm更名为ScriptEase。
当Netscape Navigator网页浏览器开始流行时,Nombas开发了一个可以嵌入网页中的CEnvi的版本。这些早期的试验被称为Espresso Page(浓咖啡般的页面),它们代表了第一个在万维网上使用的客户端语言。而Nombas没有料到它的理念将会成为万维网的一块重要基石。
1.1.2 Netscape发明了JavaScript
当网上冲浪越来越流行时,对于开发客户端脚本的需求也逐渐增大。此时,大部分互联网用户还仅仅通过28.8Kbit/s的调制解调器连接到网络,频繁的服务器端验证请求和极慢的网速让用户苦不堪言。
那时正处于技术革新最前沿的Netscape公司,开始认真考虑开发一种客户端脚本语言来解决这些简单的问题。1995年,就职于Netscape公司的布兰登·艾奇(Brendan Eich),开始着手为计划于1995年2月发布的Netscape Navigator 2开发一种名为LiveScript的脚本语言,该语言将同时在浏览器和服务器中使用(它在服务器上的名字叫LiveWire)。为了赶在发布日期前完成LiveScript的开发,Netscape与Sun公司建立了一个开发联盟。
在Netscape Navigator 2正式发布前夕,Netscape为了搭上媒体热炒Java的顺风车,临时把LiveScript改名为JavaScript,这也是最初的JavaScript 1.0版本。
1.1.3 三足鼎立
由于JavaScript 1.0获得了巨大成功,Netscape随即在Netscape Navigator 3中又发布了JavaScript 1.1版本。
互联网的发展速度超出了人们的想象,在这样的时代背景下,微软决定与Navigator展开竞争。在Netscape Navigator 3发布后不久,微软就在其Internet Explorer 3中加入名为JScript的JavaScript实现(命名为JScript是为了避开与Netscape的JavaScript纠纷)。
在微软推出JavaScript实现之后,市场上存在着3个不同的JavaScript版本:
Netscape Navigator中的JavaScript。
Internet Explorer中的JScript。
ScriptEasc中的CEnvi。
与C及其他编程语言不同,当时还没有标准统一规定JavaScript的语法和特性,3个不同版本并存的局面也带来了很多兼容性问题。随着业界担心的日益加剧,JavaScript的标准化问题被提上了议事日程。
1.1.4 ECMAScript诞生
1997年,以JavaScript 1.1为蓝本的建议被提交给欧洲计算机制造商协会(ECMA)。该协会指定一个技术委员会负责标准化一种通用、跨平台、供应商中立的脚本语言的语法和语义。这个技术委员会当时由来自Netscape、Sun、微软、Borland及其他关注脚本语言发展的公司的程序员组成,他们经过数月的努力完成了ECMA-262的新脚本语言的标准,并命名为ECMAScript。
第二年,国标标准化组织和国际电工委员会(ISO/IEC)也采用了ECMAScript作为标准(即ISO/IEC-16262)。自此以后,浏览器开发商就开始致力于将ECMAScript作为各自JavaScript实现的基础。