1.一个完成的JS实现应该由下列三个不同的部分组成:
- 核心(ECMAScript) :提供核心语言功能;
- 文档对象模型(DOM):提供访问和操作页面内容的方法和接口;
- 浏览器对象模型(BOM):提供与浏览器交互的方法和接口。
2.我们常见的web浏览器只是ECMAScript实现可能的宿主环境之一。宿主环境不仅提供基本的ECMAScript实现,同时也会提供该语言的扩展,以便语言与环境之间对接交互。
3.文档对象模型(DOM,Document Object Model)是针对XML但经过扩展用于HTML的应用程序编程接口(API,Application Programming Interface)。DOM把整个页面映射为一个多层节点结构。HTML或XML页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。看下面这个HTML页面:
<html>
<head>
<title>Sample Page</title>
</head>
<body>
<p>Hello world!</p>
</body>
</html>
通过DOM创建的这个表示文档的树形图,开发人员获得了控制页面内容和结构的主动权。借助DOM提供的API,开发人员可以轻松自如地删除、添加、替换或修改任何节点。
4.DOM级别:
-
DOM1级由两个模块组成:DOM核心(DOM Core)和DOM HTML。 其中,DOM核心规定的是如何映射基于XML的文档结构,以便简化对文档任意部分的访问和操作。DOM HTML 模块则在DOM核心的基础上加以扩展,添加了针对HTML的对象和方法。
-
DOM2级在DOM的基础上又扩充了鼠标和用户界面时间、范围、遍历(迭代DOM文档的方法)等细分模块,而且通过对象接口增加了对CSS的支持。
-
DOM2级引入了下列新模块,也给出了众多新类型和新接口的定义。
- DOM视图(DOM Views):定义了跟踪不同文档视图的接口;
- DOM事件(DOM Events):定义了事件和事件处理的接口;
- DOM样式(DOM Style):定义了基于CSS 元素应用样式的接口
- DOM遍历和范围(DOM Traversal and Range):定义了遍历和操作文档树的接口。
-
DMO3级引入了以统一方式加载和保存文档的方法--在DOM 加载和保存模块中定义;新增了验证的方法--在DOM验证模块中定义。
5.浏览器对象模型(BOM)
-
开发人员使用BOM可以控制浏览器显示的页面以外的部分。
-
从根本上讲,BOM只处理浏览器窗口和框架。但人们习惯上也把所有针对浏览器的JS扩展算作BOM的一部分。下面就是一些这样的扩展:
- 弹出新浏览器窗口的功能;
- 移动、缩放和关闭浏览器窗口的功能;
- 提供浏览器详细信息的navigator对象;
- 提供浏览器所加载页面的详细信息的location对象;
- 提供用户显示器分辨率详细信息的screen对象;
- 对cookies的支持;
- 像XMLHttpRequest和IE的ActiveXObject都这样的自定义对象; -由于没有BOM标准可以遵循,因此每个浏览器都有自己的实现。