当1995年JavaScript第一次出现在Netscape Navigator 2.0中的时候,它的主要目的还只是为处理一些输入的有效性验证。试想一下用户提交一个表单给服务器之后,返回的却是因为少填一个字段返回的错误,在刚开始普及28.8kb/s速率的电话线调制解调器时代,以如此慢速率和服务器交换数据对耐心是一个巨大的考验。因此当时处于技术最前沿的网景公司Netscape开始考虑开发一种客户端脚本语言来对用户输入数据进行校验。现在JavaScript已经是每一个主流Web浏览器都具备的重要特性,随着Web 2.0和Ajax(最成功的Ajax应用当数Gmail一个)进入主流,JavaScript更始是被推到了舞台的中心。
1995年,当时工作于Netscape的Brendan Eich开始为同年发行的Netscape Navigator 2.0准备一个称之为LiveScipt(先前还有个名字叫LiveWire)的脚本语言,在和SUN的连手下,总算及时完成。正式发布的时候,Netscape将它改名为JavaScript(为沾点当时如日中天的Java语言的光),Netscape的付出和赌注最终有了回报,从此揭开了互联网的又一个新的篇章。
因为JavaScript 1.0的成功,随后的Navigator 3.0发布了JavaScript 1.1,同时微软开始进军浏览器市场并发布IE3.0并发布了另一个类JavaScript实现JScript。虽然微软进军浏览器市场的决定为其带来了旷日持久的官司和狼籍声名,但是这也是JavaScript发展历史上的重要一环。当时市场上有3个JavaScript版本,Netscape的JavaScript、IE的JScript、CEnvi的SciptEase,因此制定一个标准势在必行,1997年JavaScript 1.1作为一个草案被提交给欧洲计算机制造商协会(ECMA),最终来自Netscape、微软、SUN、Borland及其他一些公司的程序员组成的TC39委员会拿出了 ECMA-262标准,标准定义了叫做ECMAScript的脚本语言,接下来的几年里,ISO/IEC(国际标准化组织和国际电工委员会)接纳ECMAScript为标准(ISO/IEC-1626 )。
目前ECMA-262最新版为3th Edition。符合该标准的实现有:
* Microsoft公司的JScript.
* Mozilla的Javascript-C(C语言实现),现名Spidermonkey
* Mozilla的Rhino(Java实现)
* Digital Mars公司的DMDScript。
据测试,Spidermonkey的性能最好。 目前ECMA-262 4th Edition正在开发的过程中,与其对应的JavaScript的版本为JavaScript 2.0,目前也正在开发过程中。
ECMA 各版本说明、实现
ECMA v1:标准化了JavaScript1.1的基本特性,并添加了一些新特性,没有标准化switch语句和正则表达式。 由Netscape 4.5 和IE 4 实现。
ECMA v2:ECMA v1的维护版本,只添加了说明。 由Netscape 4.5 和IE 4 实现。
ECMA v3:标准化了switch语句、异常处理和正则表达式。 由Mozilla、Netscape 6 和 IE 5.5 实现。
(本段节选自wikwpedia)
一个完整的JavaScript实现包括:核心(ECMAScipt)、文档对象模型(DOM)、浏览器对象模型(BOM)。提一下DOM,因为从Navigator 4.0和IE 4.0开始支持不同形式的动态网页(DHTML),为避免WEB开发者为不同的浏览器编写不同版本的页面,W3C 1998年制定了DOM,DOM包含两个部分:DOM Core、DOM HTML。前者制定了基于XML的文档结构图,以供访问文档内各对象,后者定义了一些HTML专用对象和方法。目前DOM最高版本为Level 3。