JavaScript实现
2016-04-17 10:32
537 查看
JavaScript实现
JavaScript 实现是由以下 3 个不同部分组成的:核心(ECMAScript)
文档对象模型(DOM)
浏览器对象模型(BOM)
ECMAScript的版本
ECMA-262 的第一版在本质上与 Netscape 的 JavaScript 1.1是一样,只是把所有与浏览器相关的代码删除了,此外还有一些小的调整。首先,ECMA-262 要求对 Unicode 标准的支持(以便支持多语言)。
第二,它要求对象是平台无关的(Netscape 的 JavaScript 1.1 事实上有不同的对象实现,例如 Date 对象,是依赖于平台)。这是 JavaScript 1.1 和 1.2 为什么不符合 ECMA-262 规范第一版的主要原因。
ECMA-262 的第二版大部分更新本质上是编辑性的。这次标准的更新是为了与 ISO/IEC-16262 的严格一致,也并没有特别添加、更改和删除内容。ECMAScript 一般不会遵守第二版。
ECMA-262第三版是该标准第一次真正的更新。它提供了对字符串处理、错误定义和数值输出的更新。同时,它还增加了正则表达式、新的控制语句、try…catch 异常处理的支持,以及一些为使标准国际化而做的小改动。一般来说,它标志着 ECMAScript 成为一种真正的编程语言。
DOM
DOM(文档对象模型)是 HTML 和 XML 的应用程序接口(API)。DOM 将把整个页面规划成由节点层级构成的文档。<html> <head> <title>Sample Page</title> </head> <body> <p>hello world!</p> </body> </html>
DOM 通过创建树来表示文档,从而使开发者对文档的内容和结构具有空前的控制力。用 DOM API 可以轻松地删除、添加和替换节点。
1.为什么 DOM 必不可少 ?
自从IE 4.0和Netscape Navigator 4.0开始支持不同形态的动态HTML(DHTML),开发者首次能够在不重载网页的情况下修改它的外观和内容。这是Web技术的一大飞跃。
2.DOM 的各个 level
DOM Level 1 是 W3C 于 1998 年 10 月提出的。它由两个模块组成,即 DOM Core 和 DOM HTML。前者提供了基于 XML 的文档的结构图,以便访问和操作文档的任意部分;后者添加了一些 HTML 专用的对象和方法,从而扩展了 DOM Core。
DOM Level 2 引入了几种 DOM 新模块,用于处理新的接口类型:
DOM 视图 - 描述跟踪文档的各种视图(即 CSS 样式化之前和 CSS 样式化之后的文档)
DOM 事件 - 描述事件的接口
DOM 样式 - 描述处理基于 CSS 样式的接口
DOM 遍历和范围 - 描述遍历和操作文档树的接口
DOM Level 3 引入了以统一的方式载入和保持文档的方法(包含在新模块 DOM Load and Save)以及验证文档(DOM Validation)的方法,从而进一步扩展了 DOM。在 Level 3 中,DOM Core 被扩展为支持所有的 XML 1.0 特性,包括 XML Infoset、XPath 和 XML Base。
3.其他 DOM
除了 DOM Core 和 DOM HTML 外,还有其他几种语言发布了自己的 DOM 标准。这些语言都是基于 XML 的,每种 DOM 都给对应语言添加了特有的方法和接口:
可缩放矢量语言(SVG)1.0
数字标记语言(MathML)1.0
同步多媒体集成语言(SMIL)
BOM
IE 3.0 和 Netscape Navigator 3.0 提供了一种特性 - BOM(浏览器对象模型),可以对浏览器窗口进行访问和操作。使用 BOM,开发者可以移动窗口、改变状态栏中的文本以及执行其他与页面内容不直接相关的动作。使 BOM 独树一帜且又常常令人怀疑的地方在于,它只是 JavaScript 的一个部分,没有任何相关的标准。BOM 主要处理浏览器窗口和框架,不过通常浏览器特定的 JavaScript 扩展都被看做 BOM 的一部分。这些扩展包括:
弹出新的浏览器窗口
移动、关闭浏览器窗口以及调整窗口大小
提供 Web 浏览器详细信息的定位对象
提供用户屏幕分辨率详细信息的屏幕对象
对 cookie 的支持
IE 扩展了 BOM,加入了 ActiveXObject 类,可以通过 JavaScript 实例化 ActiveX 对象
由于没有相关的 BOM 标准,每种浏览器都有自己的 BOM 实现。有一些事实上的标准,如具有一个窗口对象和一个导航对象,不过每种浏览器可以为这些对象或其他对象定义自己的属性和方法。
更多请参考:W3School
相关文章推荐
- Mootools 1.2教程(2) DOM选择器
- DOM 事件流详解
- Dom在ajax技术中的作用说明
- javascript针对DOM的应用分析(三)
- Dom 是什么的详细说明
- javascript针对DOM的应用分析(五)
- javascript针对DOM的应用实例(一)
- UTF-8 编码中BOM的检测与删除
- 牛叉的Jquery――Jquery与DOM对象的互相转换及DOM的三种操作
- 计算机中的字符串编码、乱码、BOM等问题详解
- JoshChen_web格式编码UTF8-无BOM的小细节分析
- UTF-8、Unicode 标准化表单、BOM
- 在javascript中对于DOM的加强
- Dom与浏览器兼容性说明
- JavaScript DOM学习第一章 W3C DOM简介
- 《JavaScript DOM 编程艺术》读书笔记之DOM基础
- JQuery包裹DOM节点的方法
- 动态修改DOM 里面的 id 属性的弊端分析
- JavaScript对HTML DOM使用EventListener进行操作
- JavaScript实现获取dom中class的方法