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
相關文章
相關標籤/搜索