JavaScript高级程序设计(第三版)
JavaScript简介
1.1 JavaScript简史
1.2 JavaScript实现
一个完整的JavaScript由三个不同的部分组成:核心(ECMAScript)、文档对象模型(DOM)、浏览器模型(BOM)。
1.2.1 ECMAScript
ECMAScript是对实现该标准规定的各方面内容的语言的描述。(可以简单的理解为ECMAScript规定了语法、语句等基本的语言规则。)
1.ECMAScript的版本
ECMAScript的不同版本,又称为版次,以第x版表示(意即描述特定实现的ECMA-262规范的第x个版本)。
2.什么是ECMAScript的兼容性
ECMA-262 给出了 ECMAScript 兼容的定义。要想成为 ECMAScript 的实现,则该实现必须做到:
① 支持 ECMA-262 描述的所有“类型、值、对象、属性、函数以及程序句法和语义”。
②支持 Unicode 字符标准。
此外,兼容的实现还可以对下列扩展。
① 添加 ECMA-262 没有描述的“更多类型、值、对象、属性和函数”(主要是指该标准中没有规定的新对象和对象的新属性)。
② 支持 ECMA-262 没有定义的“程序和正则表达式语法”(也就是说,可以修改和扩展内置的正
则表达式语法)。
以上的兼容性要求也为JavaScript带来更加广阔的空间和极大的灵活性。
3. Web 浏览器对 ECMAScript 的支持
浏 览 器 | ECMAScript兼容性 |
---|---|
Netscape Navigator 2 | —— |
Netscape Navigator 3 | —— |
Netscape Navigator 4~4.05 | —— |
Netscape Navigator 4.06~4.79 | 第1版 |
Netscape 6+(Mozilla 0.6.0+) | 第3版 |
IE3 | —— |
IE4 | —— |
IE5 | 第1版 |
IE5.5~IE7 | 第3版 |
IE8 | 第5版 * |
IE9+ | 第5版 |
Opera 6~7.1 | 第2版 |
OOpera 7.2+ | 第3版 |
Safari 1~2.0.x | 第3版 |
Safari 3.x | 第3版 |
Safari 4.x~5.x | 第5版 |
Chrome 1+ | 第3版 |
Firefox 1~2 | 第3版 |
Firefox 3.0.x | 第3版 |
Firefox 3.5~3.6 | 第5版 |
Firefox 4.0 + | 第5版 |
* 不完全兼容的实现
1.2.2 文档对象模型(DOM)
文档对象模型(DOM,Document Object Model)是针对 XML 但经过扩展用于 HTML 的应用程序编 程接口(API,Application Programming Interface)。 DOM 把整个页面映射为一个多层节点结构。简单的说,html中的每一个标签都在DOM中有对应的一个节点。看下面这个HTML 页面:
<html>
<head>
<title>Sample Page</title>
</head>
<body>
<p>Hello World!</p>
</body>
</html
通过 DOM 创建的这个表示文档的树形图,开发人员获得了控制页面内容和结构的主动权。借助
DOM 提供的 API,开发人员可以轻松自如地删除、添加、替换或修改任何节点。
1. 为什么要使用 DOM
在 Internet Explorer 4 和 Netscape Navigator 4 分别支持的不同形式的 DHTML(Dynamic HTML)基
础上,开发人员首次无需重新加载网页,就可以修改其外观和内容了。
2. DOM 级别
①DOM1 级(1998年) 组成:是由两个模块组成:DOM核心(DOM Core)和 DOM HTML。目标:主要是映射文档的结构。
②DOM2 级扩充了鼠标和用户界面事件、范围、遍历(迭代 DOM文档的方法)等细分模块,而且通过对象接口增加了对 CSS(Cascading Style Sheets,层叠样式表)的支持。
③DOM3 级则进一步扩展了 DOM,引入了以统一方式加载和保存文档的方法——在 DOM 加载和保
存(DOM Load and Save)模块中定义;新增了验证文档的方法——在 DOM 验证(DOM Validation)模块中定义。
3. 其他 DOM 标准
另外几种语言还发布了只针对自己的 DOM 标准。其中包括SVG,MathML, SMIL。
4. Web 浏览器对 DOM 的支持
1.2.3 浏览器对象模型(BOM)
BOM作用:使用 BOM 可以控制浏览器显示的页面以外的部分。从根本上讲,BOM 只处理浏览器窗口和框架;但人们习惯上也把所有针对浏览器的 JavaScript 扩展算作 BOM的一部分。下面就是一些这样的扩展:
由于没有 BOM标准可以遵循,因此每个浏览器都有自己的实现。虽然也存在一些事实标准,例如要有 window 对象和 navigator 对象等,但每个浏览器都会为这两个对象乃至其他对象定义自己的属性和方法。现在有了 HTML5,BOM 实现的细节有望朝着兼容性越来越高的方向发展。第 8 章将深入讨论 BOM。
1.3 JavaScript 版本
1.4 小结
JavaScript 是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成:
①ECMAScript,由 ECMA-262 定义,提供核心语言功能;
②文档对象模型(DOM),提供访问和操作网页内容的方法和接口;
③浏览器对象模型(BOM),提供与浏览器交互的方法和接口。
JavaScript 的这三个组成部分,在当前五个主要浏览器(IE、Firefox、Chrome、Safari 和 Opera)中
都得到了不同程度的支持。