DOM和BOM的区别

DOM和BOM的区别

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

DOM

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

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

BOM

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

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

每日一题

https://github.com/WindrunnerMax/EveryDay

参考

https://www.zhihu.com/question/20724662
https://juejin.cn/post/6844903939008102413
https://blog.csdn.net/xiao__gui/article/details/8315148
相关文章
相关标签/搜索