JavaScript版本发展史与ECMAScript标准详解

作者:白露

时间:2026-10-25

浏览:264

本文梳理了JavaScript从1995年诞生至今的版本演变历程,涵盖Netscape、微软JScript及ECMAScript标准的制定过程。详细解析了核心、DOM与BOM三大组成部分,并整理了各主流浏览器对JavaScript版本的实现差异,帮助开发者理解版本迷局与标准统一的重要性。

文章目录

JavaScript发展历程概述

自1995年诞生以来,JavaScript已走过16个年头。如今,全球无数网页依赖它执行关键任务,使其在Tiobe编程语言排行榜中位列第8,紧随C#之后。JavaScript已从早期的装饰性脚本语言转变为主流编程语言,用于开发规模更大、逻辑更复杂的程序。这要求Web开发人员深入理解JavaScript,包括其过去、现状与未来。



JavaScript历史简述

早期脚本语言与Netscape的诞生

约在1992年,Nombas公司开始开发一种名为C减减(C-minus-minus,简称Cmm)的嵌入式脚本语言。该语言捆绑在共享软件CEnvi中。当Netscape Navigator崭露头角时,Nombas开发了可嵌入网页的CEnvi版本。这些早期试验被称为Espresso Page(浓咖啡般的页面),代表了首个在万维网上使用的客户端脚本语言。Nombas当时并未预料到其理念将成为互联网的重要基石。



随着网上冲浪日益流行,开发客户端脚本的需求逐渐增加。当时在Netscape工作的Brendan Eich着手为即将于1995年发布的Netscape Navigator 2.0开发一种名为LiveScript的脚本语言,初衷是同时在浏览器和服务器端使用。Netscape与Sun公司联手及时完成了LiveScript的实现。就在Netscape Navigator 2.0即将正式发布前,Netscape将其更名为JavaScript,旨在利用Java这一互联网热门词汇。Netscape的赌注最终获得回报,JavaScript从此成为互联网的必备组件。



ECMAScript标准

微软JScript与标准化进程

由于JavaScript 1.0取得巨大成功,Netscape在Netscape Navigator 3.0中发布了1.1版。恰逢此时,微软决定进军浏览器领域,发布了IE 3.0并搭载了一个JavaScript的克隆版,名为JScript(如此命名是为了避免与Netscape潜在的许可纠纷)。微软进入Web浏览器领域的这一步骤虽然令其声名狼藉,但也成为JavaScript语言发展过程中的重要一环。



微软进入后,市场上同时存在三种不同的JavaScript版本:Netscape Navigator 3.0中的JavaScript、IE中的JScript以及CEnvi中的ScriptEase。与C等其他编程语言不同,JavaScript缺乏统一语法或特性的标准,这三种不同版本恰好凸显了这一问题。随着业界担忧加剧,语言标准化已势在必行。1997年,JavaScript 1.1作为草案提交给欧洲计算机制造商协会(ECMA)。由来自Netscape、Sun、微软、Borland及其他对脚本编程感兴趣公司的程序员组成的TC39团队锤炼出了ECMA-262标准,该标准定义了名为ECMAScript的全新脚本语言。从此,Web浏览器开始努力(尽管成功与失败程度不一)将ECMAScript作为JavaScript实现的基础。



JavaScript的三大组成部分

尽管ECMAScript是一项重要标准,但它并非JavaScript的唯一组成部分,当然也不是唯一被标准化的部分。实际上,一个完整的JavaScript实现由以下三个不同部分组成:


核心(ECMAScript)——JavaScript的核心ECMAScript描述了该语言的语法和基本对象


文档对象模型(DOM)——DOM描述了处理网页内容的方法和接口


浏览器对象模型(BOM)——BOM描述了与浏览器进行交互的方法和接口



JavaScript版本历史

JavaScript版本与浏览器实现对照

由于历史原因及技术不断发展,JavaScript版本众多,各浏览器的实现情况也各不相同。笔者根据各方面信息整理了JavaScript的各个版本及对应浏览器的实现情况,这也是本文的主要目的,欢迎大家提供意见,共同完善。


版本 发布日期 基于 Netscape Navigator Mozilla Firefox Internet Explorer Opera Safari Chrome
1.0 1996年3月
2.0
3.0 (JScript 1.0)(1996年8月)


1.1 1996年8月
3.0
3.0 (JScript 2.0)(1997年1月)



1.2 1997年6月
4.0-4.05




1.3 1998年10月 ECMA-262 第一版 (1997年6月发布)/ ECMA-262 第二版 (1998年6月发布) 4.06-4.7x
4.0 (JScript 3.0)(1997年10月)


1.4

Netscape Server Only

JScript 4.0 (Visual Studio 6, no IE release)

5.0 (JScript 5.0)(1999年3月)




1.5 2000年11月 ECMA-262 第三版 (1999年12月发布) 6.0 1.0

5.5 (JScript 5.5)(2000年7月)

6 (JScript 5.6)(2001年10月)

7 (JScript 5.7)(2006年10月)

8 (JScript 5.8)(2009年3月)



1.6 2005年11月 1.5 + Array extras + Array and String generics + E4X
1.5

3.0, 3.1
1.7 2006年10月 1.6 + Pythonic generators + Iterators + let
2.0

3.2, 4.0 1.0
1.8 2008年6月 1.7 + Generator expressions + Expression closures
3.0



1.8.1 2009年6月
1.8 + Native JSON support + Minor Updates
3.5



1.8.5 2010年7月
1.8.1 + ECMAScript 5 Compliance
4 9



2.0 制定中
ECMAScript Harmony
 



特殊版本与技术说明

特别说明:


1. 当Netscape将源代码作为Mozilla项目公布时,原计划JavaScript 1.4将嵌入到Netscape Navigator 5.0中。然而,一个冒进的决定——完全从头重新设计Netscape代码,破坏了这项工作。JavaScript 1.4仅作为Netscape Enterprise Server的服务器端脚本语言发布,此后未被放入浏览器中。


2. E4X(ECMAScript for XML)是一种在ECMAScript(见ECMA-262,包括ActionScript、JavaScript等语言实现)标准基础上加入动态XML支持的程序语言扩展。E4X旨在作为DOM接口之外的另一种选择。它使程序员能在ECMAScript脚本中通过更简洁的语法访问XML文档。同时,它也为实现脚本中XML可视化提供了一种新方法。


3. 从IE 5.5版本发布开始,微软未再更新其基于浏览器的JavaScript实现策略。但在.NET Framework中包含了JScript.NET作为ECMAScript 4的实现,其中添加了一些特定于微软的功能。它不能作为客户端脚本语言在IE中使用,只能用于ASP.NET中作为服务器端语言或独立应用程序。与其他JavaScript版本不同,JScript.NET是编译型语言,可生成独立的可执行文件。


4. ECMAScript Harmony其实是包含JavaScript 2.0在内的ECMAScript第四版的一个临时新命名(未来可能是ECMAScript第六版?),ECMAScript第五版则是独立开发的ECMAScript 3.1语言的后期命名。


5. 如今,所有主流Web浏览器都遵守ECMA-262第三版,即实现的是JavaScript 1.5版。JavaScript 1.6-1.9只是ECMAScript(JavaScript on Gecko)升级至JavaScript 2.0的临时代号。


JavaScript版本检测方法

检测JavaScript版本


点击测试按钮可以测试当前浏览器支持的JavaScript版本。在IE8中测试,提示支持的版本是1.3,这令人感到奇怪。


 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Determine JavaScript Version</title> <style type="text/css"> html, body { margin: 0; padding: 0} </style>            </head> <body> <div>  </div> </body> </html> 

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]


参考内容:

1. JavaScript高级程序设计 2. http://en.wikipedia.org/wiki/Javascript#History 3. http://en.wikipedia.org/wiki/ECMAScript#Version_correspondence 4. http://ejohn.org/blog/versions-of-javascript/ 5. https://developer.mozilla.org/en/JavaScript/Guide/JavaScript_Overview 作者:梦想 出处:http://www.cnblogs.com/lhb25

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章