DOM 和 JavaScript 的關系
DOM 與 JavaScript 是分離的。
DOM 有自己的一套標準,JavaScript 也有自己的一套標準。
JavaScript 是對標準的實現,為一種語言,而 DOM 標準定義了一系列的接口,由此可以看出,他們兩者是可以毫不相干的。
但是在 Web 開發中,頁面內容的展示全部通過瀏覽器解析展現,JavaScript 想動態的修改頁面,就必須由瀏覽器提供一些方法,交給開發者來操作頁面上的元素,因為 JavaScript 本身是沒有操作這些元素的能力的。
瀏覽器承擔了實現與暴露 DOM 接口的工作,根據標準實現一系列方法,隨后暴露給開發者使用。
如 document
對象,表示當前的頁面,也可以理解成根節點,JavaScript本身是沒有這個全局對象的。
可以通過遍歷 document 對象的屬性,來觀察一個 DOM 節點都有些什么屬性和方法。
for (var i in document) {
console.log(i, document[i])
}
一個節點的屬性非常多,包括許多事件、子節點、操作節點的方法等。
瀏覽器通過暴露這些 DOM 相關的內容給開發者,開發者通過 JavaScript 進行操作。
對瀏覽器而言,document 實際上不是最頂層的節點,再向上還有 window ,這一點可以在事件相關的章節體現。
小結
JavaScript 和 DOM 本身是可以沒有關系的,但是開發者需要操作 DOM ,瀏覽器實現了對應的方法,暴露給開發者,開發者使用 JavaScript 來調用以達到操作 DOM 的目的。