0
点赞
收藏
分享

微信扫一扫

DOM和BOM的区别

DOM和BOM的区别

在浏览器中运行的​​JavaScript​​​可以认为由三部分组成:​​ECMAScript​​​描述了该语言的语法和基本对象,​​DOM​​​文档对象模型描述了处理网页内容的方法和接口,​​BOM​​浏览器对象模型描述了与浏览器进行交互的方法和接口。

DOM

  • ​DOM​​​是​​Document Object Model​​的缩写,即文档对象模型。
  • ​DOM​​​是​​W3C​​的标准。
  • ​DOM​​​最根本对象是​​document​​​,即​​window.document​​。

​DOM​​​全称是​​Document Object Model​​​即文档对象模型,是针对​​XML​​​的基于树的​​API​​​,描述了处理网页内容的方法和接口,是​​HTML​​​和​​XML​​​的​​API​​​,​​DOM​​​把整个页面规划成由节点层级构成的文档。​​DOM​​​和文档有关,这里的文档指的是网页,也就是​​HTML​​​文档。网页是由服务器发送给客户端浏览器的,无论用什么浏览器,接收到的​​HTML​​​都是一样的,所以​​DOM​​​和浏览器无关,其关注的是网页本身的内容,由于是相对独立于浏览器的,所以可以制定标准。
​​​DOM​​​定义了​​Node​​​等对象做为这种实现的基础,就是说为了能以编程的方法操作这个​​HTML​​​的内容,例如添加元素、修改元素、删除元素等,我们把这个​​HTML​​​结构看做一个对象树​​DOM​​​树,其本身和里面的所有东西例如​​<div></div>​​​这些标签都看做一个对象,每个对象都叫做一个节点​​Node​​​,节点可以理解为​​DOM​​​中所有​​Object​​的父类。

BOM

  • ​BOM​​​是​​Browser Object Model​​的缩写,即浏览器对象模型。
  • ​BOM​​没有相关标准。
  • ​BOM​​​的最根本对象是​​window​​。

​BOM​​​是​​Browser Object Model​​​即浏览器对象模型,​​DOM​​​是为了操作文档出现的接口,而​​BOM​​​就是为了控制浏览器的行为而出现的接口,例如跳转页面、前进、后退、书签等等,程序还可能需要获取屏幕的大小之类的参数,所以​​BOM​​​就是为了解决这些事情出现的接口,例如我们要让浏览器跳转到另一个页面就需要​​Location​​​对象。
由于没有标准,不同的浏览器实现同一功能,可以需要不同的实现方式,所以对于上面说的功能,不同的浏览器的实现功能所需要的​​​JavaScript​​​代码可能不相同。虽然​​BOM​​​没有一套标准,但是各个浏览器的常用功能的​​JavaScript​​​代码还是大同小异的,对于常用的功能实际上已经有默认的标准了,所以不用过于担心浏览器兼容问题,不是每个浏览器都有自己的​​BOM​​​,也不需要为每个浏览器都学习一套​​BOM​​​,只是个别浏览器会有新增的功能会在​​BOM​​上体现出来。

每日一题

https://github.com/WindrunnerMax/EveryDay

参考

https://www.zhihu.com/question/20724662

举报

相关推荐

0 条评论