来源 | https://www.kancloud.cn/crossken/professional_js_web_developers/207402
1、JavaScript是专为网页交互而设计的脚本语言,一个完整的JavaScript实现应该由下列三个不同的部分组成(JavaScript与ECMAScript之间的关系):
核心(ECMAScript),由ECMA-262定义,提供核心语言功能。
文档对象模型(DOM),提供访问和操作网页内容的方法和接口。
浏览器对象模型(BOM),提供与浏览器交互的方法和接口。
ECMAScript
2、ECMA-262是一份定义了一种名为ECMAScript的新脚本语言的标准。ECMA-262规定的内容包括:语法、类型、语句、关键字、保留字、操作符、对象。
3、ECMAScript与Web浏览器没有依赖关系。实际上,这门语言本身并不包含输入和输出定义。ECMA-262定义的只是这门语言的基础,而在此基础上可以构建更完善的脚本语言。
我们常见的Web浏览器只是ECMAScript实现可能的宿主环境之一。其他宿主环境包括Node和Adobe Flash。
文档对象模型(DOM)
4、DOM1级由两个模块组成:DOM Core和DOM HTML。其中DOM Core规定的是如何映射基于XML的文档结构,以便简化对文档中任意部分的访问和操作。DOM HTML模块则在DOM核心的基础上加以扩展,添加了针对HTML的对象和方法。
5、DOM2级引入了下列新模块,也给出了众多新类型的接口和定义。
DOM Views:定义了跟踪不同文档(例如,应用CSS之前和之后的文档)视图的接口。
DOM Events:定义了事件和事件处理的接口。
DOM Style:定义了基于CSS为元素应用样式的接口。
DOM Traversal and Range(遍历和范围):定义了遍历和操作文档树的方法.
6、DOM3级则进一步扩展了DOM,引入了以统一方式加载和保存文档的方法--在DOM Load and Save(加载和保存模块)中定义;新增了验证文档的方法--在DOM Validation(验证模块)中定义。
7、DOM 0级标准实际上是不存在的,所谓DOM 0级只是DOM历史坐标中的一个参照点而已。具体说来,DOM 0级指的是IE 4.0和Netscape Navigator 4.0最初支持的DHTML。
浏览器对象模型(BOM)
8、从根本上讲,BOM只处理浏览器窗口和框架,但人们习惯上也把所有针对浏览器的JS扩展算作BOM的一部分,它们包括:
弹出新浏览器窗口的功能
移动、缩放和关闭浏览器窗口的功能
提供浏览器详细信息的navigator对象
提供浏览器所加载页面的详细信息的location对象
提供用户显示器分辨率详细信息的screen对象
对cookies的支持
像XMLHttpRequest和IE的ActiveXObject这样的自定义对象。
9、对于已经纳入HTML5标准的BOM来说,尽管各浏览器都实现了某些众所周知的共同特性,但其他特性还是会因浏览器而异。