1、javascript的起源
在web日益流行的同时,人们对客户端脚本语言的需求也越来越强烈。那个时候,绝大多数互联网用户都使用速度仅为28.8kb/s的“猫”(调制解调器)上网,但网页的大小和复杂性却不断增加。为完成简单的表单验证而频繁地与服务器交换数据只会加重用户的负担。想象一下:用户填写完一个表单,单击“提交”按钮,然后等待30秒钟,最终服务器返回消息说有一个必填字段没有填好,那将是多么糟糕的用户体验。当时走在技术革新最前沿的Netscape公司,决定着手开发一种客户端语言,用来处理这种简单的验证。
2、Netscape公司的javascript
当时就职于Netscape公司的Brendan Eich,开始着手为计划于1995年2月发布的Netscape Navigator 2 开发一种名为 LiveScript 的脚本语言,该语言将同时在浏览器和服务器中使用,它在服务器上的名字叫LiveWire。为了赶在发布日前完成LiveScript的开发,Netscape与Sun公司建立了一个开发联盟。在Netscape Navigator 2正式发布前夕,Netscape为了搭上媒体热炒Java的顺风车,临时把LiveScript改名为javascript。
3、Netscape公司和微软的javascript版本之争
由于javascript1.0取得了巨大成功,Netscape随即在Netscape Navigator 3中又发布了javascript1.1。web虽然羽翼未丰,但用户关注度却屡创新高。在这样的背景下,Netscape把自己定位为市场领袖型公司。与此同时,微软决定向与Navigator竞争的自家产品Internet Explorer(IE)浏览器投入更多资源。Netscape Navigator 3发布后不久,微软就在其IE3中加入了名为jscript的javascript实现(命名为jscript是为了避开与Netscape有关的授权问题)。以现在的眼光来看,微软1996年8月进入web浏览器领域而实施的这个重大举措,是导致Netscape日后蒙羞的一个标志性事件。然而这个重大举措同时也标志着javascript作为一门语言,其开发向前迈进了一大步。
微软退出其javascript实现意味着有了两个不同的javascript版本:Netscape Navigator中的javascript和IE中的jscript。与C及其他编程语言不同,当时还没有标准规定javascript的语法和特性,两个不同版本并存的局面已经完全暴露了这个问题。为了兼容性,开发者不得不针对两个版本开发两套程序。随着业界担心的日益加剧,javascript的标准化问题被提上了议事日程。
4、javascript的标准化
1997年,以javascript1.1为蓝本的建议被提交给了欧洲计算机制造商协会(ECMA)。该协会指定39号技术委员会(T39)负责“标准化一种通用、跨平台、供应商中立的脚本语言的语法和定义”。TC39由来自Netscape、Sun微软、Borland及其他关注脚本语言发展的公司的程序员组成,他们经过数月的努力完成了ECMA-262,定义一种名为ECMAScript的新脚本语言的标准。
第二年,ISO(国际标准化组织)和IEC(国际电工委员会)也采用了ECMAScript作为标准(即ISO/IEC-16262)。自此以后,浏览器开发商就开始致力于将ECMAScript作为各自javascript实现的基础,也在不同程度上取得了成功。但是,由于IE的实现和标准有很大差异,又由于IE的用户基数比较大,所以,程序员为了程序兼容不得不对IE单独开发程序或调试。但随着google的chrome浏览器的一统江湖,javascript开发者不必再花费太多时间考虑跨浏览器的兼容问题。
领取专属 10元无门槛券
私享最新 技术干货