面試題dom和bom的區(qū)別 DOM和BOM的區(qū)別?
DOM和BOM的區(qū)別?文檔對象模型(Document Object Model,簡稱DOM),是W3C組織推薦的處理可擴(kuò)展標(biāo)志語言的標(biāo)準(zhǔn)編程接口。Document Object Model的歷史可以追
DOM和BOM的區(qū)別?
文檔對象模型(Document Object Model,簡稱DOM),是W3C組織推薦的處理可擴(kuò)展標(biāo)志語言的標(biāo)準(zhǔn)編程接口。Document Object Model的歷史可以追溯至1990年代后期微軟與Netscape的“瀏覽器大戰(zhàn)”,雙方為了在JavaScript與JScript一決生死,于是大規(guī)模的賦予瀏覽器強(qiáng)大的功能。微軟在網(wǎng)頁技術(shù)上加入了不少專屬事物,計(jì)有VBScript、ActiveX、以及微軟自家的DHTML格式等,使不少網(wǎng)頁使用非微軟平臺及瀏覽器無法正常顯示。DOM即是當(dāng)時(shí)蘊(yùn)釀出來的杰作。
BOM(Browser Object Mode) 是指瀏覽器對象模型,是用于描述這種對象與對象之間層次關(guān)系的模型,瀏覽器對象模型提供了獨(dú)立于內(nèi)容的、可以與瀏覽器窗口進(jìn)行互動的對象結(jié)構(gòu)。BOM由多個(gè)對象組成,其中代表瀏覽器窗口的Window對象是BOM的頂層對象,其他對象都是該對象的子對象。
bom和dom有什么區(qū)別?
BOM是瀏覽器對象模型,用來獲取或設(shè)置瀏覽器的屬性、行為,例如:新建窗口、獲取屏幕分辨率、瀏覽器版本號等。
DOM是文檔對象模型,用來獲取或設(shè)置文檔中標(biāo)簽的屬性,例如獲取或者設(shè)置input表單的value值。 BOM的內(nèi)容不多,主要還是DOM。 由于DOM的操作對象是文檔(Document),所以dom和瀏覽器沒有直接關(guān)系。
BOM的核心是window,而window對象又具有雙重角色,它既是通過js訪問瀏覽器窗口的一個(gè)接口,又是一個(gè)Global(全局)對象。這意味著在網(wǎng)頁中定義的任何對象,變量和函數(shù),都以window作為其global對象。
JavaScript的BOM和DOM有什么區(qū)別?
JavaScript的BOM和DOM的區(qū)別如下:
1、BOM和瀏覽器關(guān)系密切,DOM和文檔有關(guān),這里的文檔指的是網(wǎng)頁,也就是HTML文檔。
2、BOM是Browser Object Model的縮寫,即瀏覽器對象模型。DOM是Document Object Model的縮寫,即文檔對象模型。
3、BOM沒有相關(guān)標(biāo)準(zhǔn)。DOM是W3C的標(biāo)準(zhǔn)。
4、BOM的最根本對象是window。DOM最根本對象是document(實(shí)際上是window.document)。二者之間的關(guān)系說明如圖:
bom和dom有什么區(qū)別?
dom:(documentobjectmodel)文檔對象模型。bom:(browserobjectmode)瀏覽器對象模型。從上面的對比中,可以很清晰的看出,bom與dom的最大區(qū)別既是b(browser)和d(document)的區(qū)別,那browser和document有什么差別呢,從下面的一張圖上看,dom的根節(jié)點(diǎn)是document。經(jīng)常編寫javascript代碼,也許你會想到window對象,為啥dom里面沒有window,這就是bom與dom的區(qū)別了,window是javascript的頂端對象之一,它是隸屬于瀏覽器層次的,它獨(dú)立于文檔內(nèi)容與瀏覽器之間。bom解析:1.bom是browserobjectmodel的縮寫,簡稱瀏覽器對象模型
2.bom提供了獨(dú)立于內(nèi)容而與瀏覽器窗口進(jìn)行交互的對象
3.由于bom主要用于管理窗口與窗口之間的通訊,因此其核心對象是window
4.bom由一系列相關(guān)的對象構(gòu)成,并且每個(gè)對象都提供了很多方法與屬性
5.bom缺乏標(biāo)準(zhǔn),javascript語法的標(biāo)準(zhǔn)化組織是ecma,dom的標(biāo)準(zhǔn)化組織是w3c6.bom最初是netscape瀏覽器標(biāo)準(zhǔn)的一部分bom結(jié)構(gòu)圖window對象是bom的頂層(核心)對象,所有對象都是通過它延伸出來的,也可以稱為window的子對象。由于window是頂層對象,因此調(diào)用它的子對象時(shí)可以不顯示的指明window對象,例如下面兩行代碼是一樣的:[code]document.write("test")
cookie到底屬于dom還是bom呢?
首先可以明確的告訴你,Cookie歸屬于BOM,而不是DOM。我們在接觸JavaScript時(shí)會了解兩大對象模型:DOM文檔對象模型、BOM瀏覽器對象模型,通過JS操作這兩大對象模型才使得JS有了交互能力,但不少人分不清這兩者區(qū)別及定位。
DOM文檔對象模型
網(wǎng)頁上的文檔對象以“樹形”結(jié)構(gòu)組織在一起,這就是文檔對象模型,DOM對節(jié)點(diǎn)包含:元素節(jié)點(diǎn)、文本節(jié)點(diǎn)、屬性節(jié)點(diǎn)。
DOM提供了處理網(wǎng)頁內(nèi)容的方法和接口,我們通過JS操作元素其實(shí)就是操作DOM。
BOM瀏覽器對象模型
BOM提供了與瀏覽器進(jìn)行交互的方法和接口,比如操作窗口大小、地址欄、屏幕等。
DOM與BOM的關(guān)系異同
1、DOM是W3C標(biāo)準(zhǔn),而BOM是由不同瀏覽器廠家自主實(shí)現(xiàn)的(所以會存在一些差異);BOM在DOM之前出現(xiàn)的;
2、DOM可以“理解”為是BOM的一部分。
綜上,Cookie的操作其實(shí)是屬于BOM,因?yàn)镃ookie是存儲在瀏覽器中的,另外document.cookie的另一種寫法是window.document.cookie。
以上就是我的觀點(diǎn),對于這個(gè)問題大家是怎么看待的呢?歡迎在下方評論區(qū)交流 ~ 我是科技領(lǐng)域創(chuàng)作者,十年互聯(lián)網(wǎng)從業(yè)經(jīng)驗(yàn),歡迎關(guān)注我了解更多科技知識!