http://www.w3school.com.cn/js/pro_js_implement.asp
出自《JavaScript高级程序设计(第3版)》
1.1 JavaScript简史
1997年,以JavaScript 1.1为蓝本的建议被提交给了欧洲计算机制造商协会(Ecma,European Computer Manufacturers Association)。
该协会指定39号技术委员会(TC39,Technical Committee #39)负责“标准化一种通用、跨平台、供应商中立的脚本语言的语法和语义”(http://www.ecmainternational.org/memento/TC39.htm)。
TC39由来自Netscape、Sun、微软、Borland及其他关注脚本语言发展的公司的程序员组成,他们经过数月的努力完成了ECMA-262——定义一种名为ECMAScript(发音为“ek-ma-script”)的新脚本语言的标准。
1.2 JavaScript实现
尽管 ECMAScript 是一个重要的标准,但它并不是 JavaScript 唯一的部分,当然,也不是唯一被标准化的部分。实际上,一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:
1.2.1 ECMAScript
ECMAScript与Web浏览器没有依赖关系。实际上,这门语言本身并不包含输入和输出定义。
我们常见的Web浏览器只是ECMAScript实现可能的宿主环境之一。
宿主环境不仅提供基本的ECMAScript实现,同时也会提供该语言的扩展,以便语言与环境之间对接交互。
而这些扩展——如DOM,则利用ECMAScript的核心类型和语法提供更多更具体的功能,以便实现针对环境的操作。
其他宿主环境包括NODE和Adobe Flash。
简单地说,ECMAScript 描述了以下内容:
- 语法
- 类型
- 语句
- 关键字
- 保留字
- 运算符
- 对象
ECMAScript 仅仅是一个描述,定义了脚本语言的所有属性、方法和对象。其他语言可以实现 ECMAScript 来作为功能的基准,
JavaScript实现了ECMAScript,Adobe ActionScript同时也实现了ECMAScript。
1.2.2 DOM 文档对象模型
文档对象模型(DOM,Document Object Model)是针对XML但经过扩展用于HTML的应用程序编成接口。
DOM把整个页面映射为一个多层节点结构。
HTML或XML页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。
1.2.3 BOM浏览器对象模型
BOM可以对浏览器窗口进行访问和操作。
使用 BOM,开发者可以移动窗口、改变状态栏中的文本以及执行其他与页面内容不直接相关的动作。
使 BOM 独树一帜且又常常令人怀疑的地方在于,它只是 JavaScript 的一个部分,没有任何相关的标准。这个问题在HTML5中得到了解决。
BOM 主要处理浏览器窗口和框架,不过通常浏览器特定的 JavaScript 扩展都被看做 BOM 的一部分。这些扩展包括:
- 弹出新的浏览器窗口
- 移动、关闭浏览器窗口以及调整窗口大小
- 提供 Web 浏览器详细信息的定位对象
- 提供用户屏幕分辨率详细信息的屏幕对象
- 对 cookie 的支持
- IE 扩展了 BOM,加入了 ActiveXObject 类,可以通过 JavaScript 实例化 ActiveX 对象