虽然ECMAScript最终成为了JavaScript语言的标准版本,但是人们并不习惯称呼JavaScript为ECMAScript。直到今天,我们提及的JavaScript语言实际上就是指标准化的ECMAScript语言。
而且,各家公司在发布JavaScript版本时,并非自觉按着ECMAScript版本行事,而是沿袭自己公司的JavaScript版本号,同 时各个版本的JavaScript之间语言支持特性也并不是完全统一,所以容易给学习者造成混乱。为了帮助读者学习,我们列出了Netscape公司、 Microsoft公司和ECMA组织各自发布的JavaScript版本号,并且解释了它们的关键特性和各个版本之间的关联(如表1-1所示)。
| 表 1-1 JavaScript 、 JScript 和 ECMAScript 版本比较 | |
| 版本 | 说明 |
| Netscape 的 JavaScript | |
| JavaScript 1.0 | 由 Netscape Navigator 2.0 版本浏览器开始支持, 目前该版本已经被废弃。它也是 JavaScript 最原始的版本 |
| JavaScript 1.1 | 由 Netscape Navigator 3.0 版本浏览器开始支持, 引入真正的 Array 对象,解决了 1.0 版本中大量的错误 |
| JavaScript 1.2 | 由 Netscape Navigator 4.0 版本浏览器开始支持,引入 switch 语句、正则表达式和大量其他特性,与 ECMAScript v1 版 本基本符合,但是还存在很多不兼容性 |
| JavaScript 1.3 | 由 Netscape Navigator 4.5 版本浏览器开始支持,修正了 JavaScript 1.2 版本的不兼容性,符合 ECMAScript v1 版本标准 |
| JavaScript 1.4 | 只在 Netscape 的服务器产品中支持 |
| JavaScript 1.5 | 由 Netscape Navigator 6.0 版本浏览器和 Mozilla 浏览器开始支持, 引入异常处理机制,符合 ECMAScript v3 版本标准 |
| Microsoft 的 JScript | |
| JScript 1.0 | 由 IE 3 早期版本浏览器开始支持,基本上相当于 JavaScript 1.0 |
| JScript 2.0 | 由 IE 3 后期版本浏览器开始支持,基本上相当于 JavaScript 1.1 |
| JScript 3.0 | 由 IE 4 版本浏览器开始支持,基本上相当于 JavaScript 1.3 , 符合 ECMAScript v1 版本标准 |
| JScript 4.0 | 还没有浏览器对其支持 |
(续表)
| 版本 | 说明 |
| JScript 5.0 | 由 IE 5 版本浏览器开始支持,支持异常处理机制, 部分符合 ECMAScript v3 版本标准 |
| JScript 5.5 | 由 IE 5.5 版本浏览器开始支持, IE 6 版本浏览器开始支持 JScript 5.6 版本 基本相当于 JavaScript 1.5 版本浏览器,完全符合 ECMAScript v3 版本标准 |
| ECMA 的 ECMAScript | |
| ECMA v1 | JavaScript 语言的第一个标准版本,标准化了 JavaScript 1.1 版本的基本特性,并添加了一些新特性,没有把 switch 语句 和正则表达式设置为标准,与 JavaScript 1.3 和 JScript 3.0 版本实现一致 |
| ECMA v2 | 对 ECMA v1 版本进行了维护,添加了说明文档,但是没有添加新的特性 |
| ECMA v3 | 标准化了 switch 语句、正则表达式和异常处理机制, 与 JavaScript 1.5 和 JScript 5.5 版本实现一致 |
严格地讲,ECMAScript仅仅是一个描述文档,它定义了脚本语言的所有属性、方法和对象。其他的语言可以根据ECMAScript文档描述的标准来实现具体的应用版本。例如,JavaScript就是这样,如图1-1所示。
|
| (点击查看大图)图1-1 ECMAScript文档规范的应用示意图 |
简单地说,ECMAScript文档描述了如下基本内容:
语法。
保留字。
关键字。
类型。
运算符。
语句。
对象。
每个浏览器都定义了脚本引擎接口,从而实现了对JavaScript引擎嵌入的需要,当然这些JavaScript引擎一般都遵循ECMAScript文档描述的标准来实现,然后又实现对其他标准接口的扩展,如DOM和BOM等。
本文详细对比了Netscape的JavaScript、Microsoft的JScript与ECMA的ECMAScript不同版本间的特性变化及兼容性,帮助理解JavaScript的发展历程。
535

被折叠的 条评论
为什么被折叠?



