JavaScript的BOM和DOM有什么区别?

JavaScript06

JavaScript的BOM和DOM有什么区别?,第1张

两个都要学。

BOM是浏览器对象模型,用来获取或设置浏览器的属性、行为,例如:新建窗口、获取屏幕分辨率、浏览器版本号等。

DOM是文档对象模型,用来获取或设置文档中标签的属性,例如获取或者设置input表单的value值。

BOM的内容不多,主要还是DOM。

由于DOM的操作对象是文档(Document),所以dom和浏览器没有直接关系。

DOM和BOM

参考 DOM与BOM 和 BOM和DOM详解

javascript 有三部分构成:ECMAScript,DOM和BOM。根据宿主(浏览器)的不同,具体的表现形式也不尽相同,ie和其他的浏览器风格迥异。

DOM(文档对象模型)是W3C的标准,所有浏览器公共遵守的标准。

DOM 是HTML和XML的应用程序接口(API),就是把「文档」当做一个「对象」来看待。

DOM 使程序和脚本有能力动态地访问和更新文档的内容、结构以及样式,是平台和语言中立的接口。

BOM(浏览器对象模型)是各个浏览器厂商根据DOM在各自浏览器上的实现,表现为不同浏览器定义有差别,实现方式不同。

BOM 就是把「浏览器」当做一个「对象」来看待,BOM除了可以访问文档中的组件之外,还可以访问浏览器的组件。

BOM 定义了JavaScript可以进行操作的浏览器的各个功能部件的接口,主要处理浏览器窗口和框架,不过通常浏览器特定的JavaScript扩展都被看做BOM的一部分,这些扩展包括:

注意:window 是 BOM 对象,而非 js 对象

Javacsript是通过访问BOM对象来访问、控制、修改客户端(浏览器),由于 BOM的window 包含了document,因此可以直接使用window对象的document属性来访问、检索、修改XHTML文档内容与结构。因为 document对象又是DOM 模型的根节点,也就是DOM的最根本的对象是BOM的window对象的子对象,可以说,BOM包含了DOM,浏览器提供出来给予访问的是BOM对象,从BOM对象再访问到DOM对象,从而js可以操作浏览器以及浏览器读取到的文档。

区别:DOM描述了处理网页内容的方法和接口,BOM描述了与浏览器进行交互的方法和接口。