一个完整的JavaScript实现由以下三部分组成:
![](https://img.haomeiwen.com/i1407682/8313f5272c76ea96.png)
ECMAScript是JavaScript的核心,定义了基本的语法和数据类型等一些语言的基础,DOM和BOM属于JavaScript的扩展部分,这两部分的实现不同的浏览器会有比较大的差异
ECMAScript
符合ECMAScript标准必须满足以下两点:
- 支持ECMAScript所描述的“语法、类型、语句、关键字、保留字、操作符、对象”等所有内容
- 支持Unicode字符标准
在满足以上条件的同时,可以对其内容进行扩展,比如增加新的对象和扩展语法等
DOM
DOM(Document Object Model)文档对象模型,是基于XML经过扩展用于HTML的应用程序编程接口即API,通过DOM开发者可以访问和操作页面的内容。DOM把整个页面映射为一个多层节点结构,HTML中每个组成部分都是某种类型的节点,节点中包含着不同类型的数据
<html>
<head>
<title>Sample Page</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
以上的HTML可以转化为下面的DOM结构
![](https://img.haomeiwen.com/i1407682/7743ee5a7910924f.png)
DOM的前身是DHTML,当时微软和netscape开发DHTML时各自实现了一套,互不兼容。后来负责制定web通讯标准的组织W3C(万维网联盟)开始计划推出统一的DOM标准。W3C 推出的DOM标准分为三个级别,分别是DOM1、DOM2和DOM3,从一级到三级内容逐渐递增,三级DOM其实就是标准不停的迭代扩展的结果。DOM标准没有DOM0级,DOM0级一般是指早期的DHTML。绝大部分浏览器都支持DOM1级,DOM1级和DOM3级支持性各浏览器差异比较大
BOM
BOM(Browser Object Model)浏览器对象模型,通过BOM开发者可以操作页面以外的部分,比如访问和操作浏览器窗口等。BOM最独特的地方就是它没有标准,所以不同浏览器的实现都不一样。直到HTML5标准推出之后,很多BOM功能才被写入了规范中。习惯上把针对浏览器的JavaScript扩展算作BOM的一部分,例如navigator对象、location对象、sreen对象、cookies和XMLHttpRequest(IE为ActiveXObject)等都属于BOM
网友评论