此係列文章,用於記錄所學,若有錯誤歡迎指出。css
1.核心(ECMAScript)html
2.文檔對象模型(DOM)前端
3.瀏覽器對象模型(BOM)node
ECMAScript說白了是定義Javascript的標準,而這種標準與瀏覽器並沒有依賴關係。瀏覽器
咱們如今前端所使用的Javascript只是遵循這一標準的,以瀏覽器爲宿主平臺的腳本語言。cookie
遵循這一標準的腳本語言均可以稱之爲js。dom
而js的宿主平臺除了咱們最經常使用的瀏覽器平臺以外,還有node,和Adobe flash等。xml
而這一部分的主要內容,通常指的是js的數據類型,變量的聲明,語法等htm
Dom這個概念相信許多人都知道對象
那麼它具體是啥呢?
我在看JS高編以前也是知道有dom節點,bom節點等。但這個dom究竟是什麼呢?
我根據書中的描述是這樣理解dom的。
dom至關因而對xml拓展後的針對html的API。
這麼說可能不太好理解,那麼這樣說吧。
dom先將html頁面映射爲一個多層的有許多節點的對象,而後dom向咱們提供一個操做這些映射的節點的方法。
咱們經過這些操做節點的API來操做頁面中的節點。
而dom節點就是咱們能夠經過這些API操做的節點(我是這樣理解的)
在知道dom大概是啥以後,另外一個問題隨之而來。
DOM的級別?
我以前也在許多地方見過相似於DOM0級,DOM2級這樣的概念。
那這裏的DOM級別又指的是什麼呢?
咱們都知道,不一樣的瀏覽器之間有兼容性問題。
這種不一樣瀏覽器之間的差別,在不一樣的瀏覽器的DOM對象之間固然也是存在的。
這裏就是IE在搞事了,低版本ie無論是獲取節點的樣式,仍是其餘的dom操做都和咱們如今經常使用的有所區別。
那麼DOM級別就是一個針對DOM的標準的版本,意思就是DOM對象由W3C制定了一套全部瀏覽器DOM都應該遵照的標準。
而後這個標準隨着時間的推移有着不一樣的版本,對應不一樣版本標準的DOM對象就分出了級別。
首先是DOM0級,咱們常說onclick 這些用戶事件是dom0級事件,然而實際上dom0級是不存在的,這個版本指的每每是最初的DHTML的那個版本。
後面對DOM的標準的更新都以此爲參考點,因此有了DOM一、DOM二、DOM3。
而後是DOM1,這個版本的標準主要針對的是規範dom映射事後的文檔結構。
主要分爲了兩個部分,第一個部分:DOM核心 用於規定如何映射html文檔結構
第二個部分:DOMhtml 定義了一些針對html的對象和方法。
這個版本是沒有規定用戶事件的相關標準的,因此咱們常說的只有DOM0級事件 DOM2級事件 而沒有DOM1級事件。
其次是DOM2,這個版本針對的就是頁面了
好比一些對css樣式操做的支持,擴充了鼠標和用戶事件,拓展支持XML命名空間
在這個版本主要分爲如下幾個板塊:
1. DOM視圖:用於跟蹤文檔
2.DOM事件:事件和時間的處理
3.DOM樣式:操做CSS的樣式接口
4.DOM遍歷和範圍:如何遍歷文檔樹和操做文檔樹
最後是DOM3,這個版本擴充了一些鍵盤的用戶事件
添加了加載和保存文檔的方法。
新增驗證文檔的方法。
對dom核心進行拓展:支持XML1.0
Bom相似於DOM,他兩的區別從名字上咱們就能夠看出端倪。
DOM是針對操做文檔樹的API接口,那麼BOM對象就是用於操做瀏覽器行爲的。
BOM的主要功能有:
1.彈出新瀏覽器窗口
2.移動、縮放、關閉窗口
3.提供瀏覽器的詳細信息(navigator)
4.提供頁面詳細信息(location)
5.提供用戶屏幕分辨率等信息(screen)
6.對cookie的支持
7.XMLHttpRequest 和 ActiveXObject
用於上述操做的對象能夠說都是BOM