ECMAScript、JavaScript和JScript
ECMAScript、JavaScript和JScript
虽然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等