DOM和BOM的區別
阿新 • • 發佈:2021-01-28
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
https://juejin.cn/post/6844903939008102413
https://blog.csdn.net/xiao__gui/article/details/8315148