JavaScript 基础篇 (一)
本文章距离最后一次更新已经过去了 1864 天,文章内容可能已经变得不可靠或者版本不适配,请谨慎阅读。
JavaScript 实现
一个完整的 javascript 实现应该由三个部分组成:
- 核心(ECMAScript)
- 文档对象模型(DOM)
- 浏览器对象模型(BOM)
ECMAScript
由 ECMA-262 定义的 ECMAScript 与 Web 浏览器没有依赖关系。实际上,这门语言本身并不包含输 入和输出定义。Web 浏览器只是 ECMAScript 实现可能的宿主环境之一。
ECMA-262 标准规定了这门语言有 下列组成部分:
- 语法
- 类型
- 语句
- 关键字
- 保留字
- 操作符
- 对象
ECMAScript 就是对实现该标准规定的各个方面内容的语言的描述。
什么是 ECMAScript 兼容?
- 支持 ECMA-262 描述的所有 “类型、值、对象、属性、函数以及程序句法和语义”
- 支持 Unicode 字符标准
- 添加 ECMA-262 没有描述的 “更多类型、值、对象、属性和函数”。ECMA-262 所说的这些新增 特性,主要是指该标准中没有规定的新对象和对象的新属性。
- 支持 ECMA-262 没有定义的 “程序和正则表达式语法”。(也就是说,可以修改和扩展内置的正 则表达式语法。)
文档对象模型(DOM)
文档对象模型(DOM,Document Object Model)是针对 XML 但经过扩展用于 HTML 的应用程序编 程接口(API,Application Programming Interface)。
DOM 把整个页面映射为一个多层节点结构。HTML 或 XML 页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。
举个例子:
html
1 | <html> |
DOM 分层节点图:
通过 DOM 创建的这个表示文档的树形图,开发人员获得了控制页面内容和结构的主动权。借助 DOM 提供的 API,开发人员可以轻松自如地删除、添加、替换或修改任何节点。
浏览器对象模型(BOM)
从根本上讲,BOM 只处理浏览器窗口和框架;但人们习惯上也把所有针对浏览器的 JavaScript 扩展 算作 BOM 的一部分。下面就是一些这样的扩展:
- 弹出新浏览器窗口的功能
- 移动、缩放和关闭浏览器窗口的功能
- 提供浏览器详细信息的 navigator 对象
- 提供浏览器所加载页面的详细信息的 location 对象
- 提供用户显示器分辨率详细信息的 screen 对象
- 对 cookies 的支持
- 像 XMLHttpRequest 和 IE 的 ActiveXObject 这样的自定义对象
由于没有 BOM 标准可以遵循,因此每个浏览器都有自己的实现,但是现在有了 HTML5,BOM 实现的细节有望朝着兼容性越来越高的方向发展。
评论