日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

javascript / DOM、BOM、document、window 区别和联系

發布時間:2024/10/14 javascript 96 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javascript / DOM、BOM、document、window 区别和联系 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作者:Vkki 鏈接:https://www.zhihu.com/question/33453164/answer/56549408 來源:知乎 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

我試著用通俗的語言解釋一下。

這幾個都是 JS 里面的概念。

一、DOM

DOM 全稱是 Document Object Model,也就是文檔對象模型。

DOM 就是針對 HTML 和 XML 提供的一個API。什么意思?就是說為了能以編程的方法操作這個 HTML 的內容(比如添加某些元素、修改元素的內容、刪除某些元素),我們把這個 HTML 看做一個對象樹(DOM樹),它本身和里面的所有東西比如 <div></div> 這些標簽都看做一個對象,每個對象都叫做一個節點(node),節點可以理解為 DOM 中所有 Object 的父類。

DOM 有什么用?就是為了操作 HTML 中的元素,比如說我們要通過 JS 把這個網頁的標題改了,直接這樣就可以了:

document.title = 'how to make love';

這個 API 使得在網頁被下載到瀏覽器之后改變網頁的內容成為可能。

二、document

當瀏覽器下載到一個網頁,通常是 HTML,這個 HTML 就叫 document(當然,這也是 DOM 樹中的一個 node),從上圖可以看到,document 通常是整個 DOM 樹的根節點。這個 document 包含了標題(document.title)、URL(document.URL)等屬性,可以直接在 JS 中訪問到。

在一個瀏覽器窗口中可能有多個 document,例如,通過 iframe 加載的頁面,每一個都是一個 document。

在 JS 中,可以通過 document 訪問其子節點(其實任何節點都可以),如

document.body; document.getElementById('xxx');

三、BOM
?

BOM 是 Browser Object Model,瀏覽器對象模型。

剛才說過 DOM 是為了操作文檔出現的接口,那 BOM 顧名思義其實就是為了控制瀏覽器的行為而出現的接口。瀏覽器可以做什么呢?比如跳轉到另一個頁面、前進、后退等等,程序還可能需要獲取屏幕的大小之類的參數。所以 BOM 就是為了解決這些事情出現的接口。比如我們要讓瀏覽器跳轉到另一個頁面,只需要

location.href = "http://www.xxxx.com";

這個 location 就是 BOM 里的一個對象。

四、window

window 也是 BOM 的一個對象,除去編程意義上的“兜底對象”之外,通過這個對象可以獲取窗口位置、確定窗口大小、彈出對話框等等。例如我要關閉當前窗口:

window.close();

五、總結

DOM 是為了操作文檔出現的 API,document 是其的一個對象;
BOM 是為了操作瀏覽器出現的 API,window 是其的一個對象。

?

(SAW:Game Over!)

總結

以上是生活随笔為你收集整理的javascript / DOM、BOM、document、window 区别和联系的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。