第1章——JavaScript简介
1. JavaScript实现
JavaScript是一种专为与网页交互而设计的脚本语言。一个完整的JavaScript实现应该由三个部分组成:
(1)核心——ECMAScript
(2)文档对象模型DOM
(3)浏览器对象模型BOM
2. 文档对象模型DOM
(1)概念
DOM是针对XML但经过扩展用于HTML的应用编程接口(API)。DOM把整个页面映射为一个多层节点结构,HTML或XML页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。
简单来说,DOM就是js对HTML进行操作的唯一接口,除了DOM,js没有其他方法能够操作HTML。
※例:
<html>
<head>
<title>Sample Page</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
在DOM中,该页面可通过下面的分层节点图表示:
(2)DOM级别
【DOM1级】
由两个模块组成:DOM核心和DOM HTML。其中,DOM核心规定如何映射基于XML的文档结构,以便简化对文档中任意部分的访问和操作。DOM HTML模块则在DOM核心的基础上加以扩展,添加了针对HTML的对象和方法。其主要目标是映射文档的结构。
【DOM2级】
在原来DOM的基础上扩充了鼠标和用户界面事件、范围、遍历(迭代DOM的方法)等细分模块,且通过对象接口增加了对CSS的支持,并引入下列新模块:
- DOM视图:定义了跟踪不同文档(如应用CSS之前和之后的文档)视图的接口
- DOM事件:定义了事件和事件处理的接口
- DOM样式:定义了基于CSS为元素应用样式的接口
- DOM遍历和范围:定义了遍历和操作文档树的接口
【DOM3级】
进一步扩展了DOM,也对DOM核心进行了扩展,开始支持XML 1.0规范,引入了以下模块:
- DOM加载和保存模块:定义了以统一方式加载和保存文档的方法
- DOM验证模块:定义了验证文档的方法
【DOM0级】
该标准不存在,只是DOM历史坐标的一个参照点。也可以说DOM0级具体指的是DHTML。
3. 浏览器对象模型BOM
BOM用于访问和操作浏览器窗口,可控制浏览器显示的页面以外的部分。
BOM存在的问题是没有标准可以遵循,因此不同浏览器可能会有不同的实现。HTML5致力于把很多BOM功能写入正式规范,以解决这个问题。
从根本上讲,BOM只处理浏览器窗口和框架,但人们习惯上也把所有针对浏览器的JavaScript扩展算作BOM的一部分,如下列扩展:
- 弹出新浏览器窗口的功能
- 移动、缩放和关闭浏览器窗口的功能
- 提供浏览器详细信息的navigator对象
- 提供浏览器所加载页面的详细信息的location对象
- 提供用户显示器分辨率详细信息的screen对象
- 对cookies的支持
- 像XMLHttpRequest和IE的ActiveXObject这样的自定义对象