JavaScript中DOM和BOM原理詳析
前言
本系列用于撰寫作者在學(xué)習(xí)JavaScript及瀏覽JavaScript相關(guān)書籍時所遇到的一些問題及心得
DOM
首先我們要了解JavaScript里面一個非常重要的模型:文檔對象模型(DOM,全稱Document Object Model),這是一個應(yīng)用編程的API接口,我們一般在HTML頁面中使用擴(kuò)展的XML,提到DOM,我們就得想到節(jié)點,換句話說,HTML或者XML頁面是由不同的節(jié)點組成的頁面
<!DOCTYPE html> <html lang="en"> <head> ? ?<meta charset="UTF-8"> ? ?<title>Title</title> </head> <body> <p>Hello World</p> </body> </html>
上圖是一個很明顯的HelloWorld的界面,也是大多數(shù)程序員“夢”開始的地方,我們現(xiàn)在的重點不在如何寫代碼,本文重在講解html的結(jié)構(gòu)分析

通過上圖我們可以看到,使用DOM節(jié)點對HTML的結(jié)構(gòu)進(jìn)行分解
HTML分為兩部分,head和body,head“分配”下去title(標(biāo)題)和Sample Page;body分配下去則是段落標(biāo)簽p及網(wǎng)頁內(nèi)容,看到這里,一些讀者會產(chǎn)生如下疑問
為什么要創(chuàng)建DOM節(jié)點或者畫一個類似于這樣的結(jié)構(gòu)圖?
通過這個結(jié)構(gòu)圖,我們能夠很清晰的看到文檔的結(jié)構(gòu),有助于我們快速開發(fā)前端HTML頁面,盡量減少后期代碼冗余帶來的不必要的麻煩,因此,我們使用DOM API可以輕松的刪除、添加、替換、修改節(jié)點從而更改文檔的結(jié)構(gòu)
接下來我們重點講講DOM這個大家伙
DOM的家世
1.DOM為啥這么有必要?
首先我們得明白一個問題,世界上有諸多瀏覽器,如360、IE、Edge、Chrome等等,這些瀏覽器都不是同一家公司研發(fā)出來的,那么就意味著遵守的網(wǎng)頁規(guī)則也不一樣,瀏覽器軟件是無窮無盡的,但是咱們的技術(shù)得跟上呀,因此我們需要一個穩(wěn)定的結(jié)構(gòu)去能夠兼容各大瀏覽器運行HTML,DOM應(yīng)運而生。此處插個題外話,DOM標(biāo)準(zhǔn)是W3C制定的哦,也就是咱們熟悉的萬維網(wǎng)聯(lián)盟
2.DOM的迭代,有啥區(qū)別?
在1998年的10月,DOM Level 1成為了W3C的推薦標(biāo)準(zhǔn),這個DOM Level 1是由DOM Core 和DOM HTML組成的。前者提供了上文說到的XML文檔(映射關(guān)系),后者在前者的基礎(chǔ)上進(jìn)行擴(kuò)增,增加了特定于HTML的對象和方法
3.注意注意??!
DOM并不是JavaScript的獨生子,其他的一些語言也可以實現(xiàn)DOM操作,對于瀏覽器來說,DOM就是使用ECMAScript實現(xiàn)的,現(xiàn)在已經(jīng)成為了JavaScript的一大組成部分(有種先入為主的感覺)
關(guān)于DOM Level 2嘛,估計大部分讀者不算太重視,畢竟誰學(xué)編程語言是專門來看DOM的定義和陳年舊事的對吧,簡單的來說,DOM Level 2通過對象借口支持了層疊樣式表,也就是咱們熟悉的CSS~
剩下的DOM資料講解不再在本文中贅述,有興趣的讀者可以買一本 《JavaScript高級程序設(shè)計(第四版)》 看看哦
DOM的好兄弟BOM!
說完了DOM,咱們來看看BOM是個啥玩意,用腳想都知道,這玩意肯定跟瀏覽器脫不了干系~
簡單的來說,BOM主要針對的是瀏覽器窗口的問題,比如彈出新窗口,移動、縮放窗口,加載窗口信息等等~
畢竟,你也不想因為瀏覽器窗口的問題被DOM知道吧?
還是那句話,剩下的BOM資料講解不再在本文中贅述,有興趣的讀者可以買一本 《JavaScript高級程序設(shè)計(第四版)》 慢慢摸索
小結(jié)
到此這篇關(guān)于JavaScript中DOM和BOM原理詳析的文章就介紹到這了,更多相關(guān)JS DOM和BOM內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 解析DHTML,JavaScript,DOM,BOM以及WEB標(biāo)準(zhǔn)的描述
- Javascript基礎(chǔ)知識(三)BOM,DOM總結(jié)
- javascript學(xué)習(xí)筆記(三)BOM和DOM詳解
- javascript bom是什么及bom和dom的區(qū)別
- 實現(xiàn)JavaScript的組成----BOM和DOM詳解
- JavaScript學(xué)習(xí)總結(jié)(一) ECMAScript、BOM、DOM(核心、瀏覽器對象模型與文檔對象模型)
- JavaScript中BOM和DOM詳解
- JavaScript的DOM與BOM的區(qū)別與用法詳解
- JavaScript中BOM,DOM和事件的用法詳解
相關(guān)文章
微信小程序?qū)崙?zhàn)篇之購物車的實現(xiàn)代碼示例
本篇文章主要介紹了微信小程序?qū)崙?zhàn)篇之購物車的實現(xiàn)代碼示例,詳細(xì)的介紹了購物車的功能實現(xiàn),具有一定的參考價值,有興趣的可以了解一下2017-11-11
JavaScript將字符串轉(zhuǎn)換為整數(shù)的方法
這篇文章主要介紹了JavaScript將字符串轉(zhuǎn)換為整數(shù)的方法,涉及javascript中parseInt函數(shù)的使用技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04
Function.prototype.call.apply結(jié)合用法分析示例
昨天在網(wǎng)上看到一個很有意思的js面試題:var a = Function.prototype.call.apply(function(a){return a;}, [0,4,3]);alert(a); 分析步驟如下,感興趣的朋友可以參考下哈2013-07-07
webpack-url-loader 解決項目中圖片打包路徑問題
這篇文章主要介紹了webpack-url-loader 解決項目中圖片打包路徑問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02
JavaScript 用Node.js寫Shell腳本[譯]
你懂JavaScript嗎?你需要寫一個Shell腳本嗎?那么你應(yīng)該試一下Node.js,它很容易安裝,而且很適合通過寫Shell腳本來學(xué)習(xí)它2012-09-09
溫習(xí)Javascript基礎(chǔ)語法之詞法結(jié)構(gòu)
javascript是一門簡單的語言,也是一門復(fù)雜的語言。這篇文章主要介紹了溫習(xí)Javascript基礎(chǔ)語法之詞法結(jié)構(gòu)的相關(guān)資料,需要的朋友可以參考下2016-05-05
基于JavaScript Array數(shù)組方法(新手必看篇)
下面小編就為大家?guī)硪黄贘avaScript Array數(shù)組方法(新手必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08

