《JavaScript高级程序设计》第一章 JS的基本实现 学习笔记
JavaScript 拥有比 ECMAScript 更广泛的含义。一个完整的JavaScript由三个部分组成,分别是:核心(ECMAScript)、文档对象模型(DOM)、浏览器对象模型(BOM)。
一、ECMAScript
ECMA-262定义的ECMAScript与Web浏览器没有依赖关系。ECMA定义的只是这门语言的基础,而在此基础之上可以建构更完整的脚本语言。Web浏览器只是ECMAScript实现可能的宿主环境之一。
宿主环境不仅提供基本的ECMAScript实现,同时也会提供该语言的扩展,以便语言与环境之间对接交互。
而这些扩展——如DOM,则利用ECMAScript的核心类型和语法提供更多更具体的功能,以便实现针对环境的操作。
其他宿主环境包括Node和Adobe Flash。
ECMAScript规定的内容包括:
语法
类型
语句
关键字
保留字
操作符
对象
ECMAScript就是对实现该标准规定的各个方面内容的语言的描述。
JavaScript实现了ECMAScript。
二、文档对象模型DOM
文档对象模型是针对XML,但经过扩展用于HTML的应用程序编程接口(API,Application Programming Interface)。DOM把整个页面映射为一个多层节点结构。HTML或XML页面中的每个组成部分都是某种类型的节点。
<html>
<head>
<title> Sample Page </title>
</head>
<body>
<p> Hello World! </p>
</body>
</html>
这个页面可以 通过图形表示出来。
通过DOM创建的这个表示文档的属性图,开发人员获得了控制页面内容和结构的主动权。借助DOM提供API,开发人员可以删除、添加、替换或修改任何节点。
DOM2 在 DOM1 的基础上扩充了鼠标和用户界面事件、范围、遍历等细分模块,而且通过对象接口增了对CSS的支持。
三、浏览器对象模型(BOM)
开发人员使用BOM可以控制浏览器现实的页面以外的部分。
BOM真正与众不同的地方,是它作为JavaScript实现的一部分但却没有相关的标准。
这个问题在HTML5中得到了解决,HTML5致力于把很多BOM功能写入正式规范。
从根本上讲,BOM只处理浏览器窗口和框架。
BOM的一些扩展。
- 移动新浏览器窗口的功能;
- 移动、缩放和关闭浏览器窗口的功能;
- 提供浏览器详细信息的Navigator对象;
- ……
BOM没有标准可以遵循,因此BOM实现的细节有望朝着兼容性越来越高的方向发展。