DOM 和 BOM(學習筆記)

一、先搞懂核心定義(用生活化比喻)

可以把瀏覽器想象成一棟房子:

  • BOM (Browser Object Model):瀏覽器對象模型
    相當于房子的整體結構(比如大門、墻壁、空調(diào)系統(tǒng)),它是操作瀏覽器本身的 API,和頁面內(nèi)容無關。
    核心對象是 window(瀏覽器窗口),所有 BOM 相關的屬性/方法都掛在 window 上(比如地址欄、刷新按鈕、彈窗、瀏覽器尺寸)。

  • DOM (Document Object Model):文檔對象模型
    相當于房子里的家具、裝飾(比如桌子、沙發(fā)、掛畫),它是操作網(wǎng)頁內(nèi)容的 API,把 HTML 文檔轉換成可被 JS 操作的“對象樹”。
    核心對象是 document(頁面文檔),而 document 本身也是 window 的一個屬性(window.document)。

二、具體解析 & 常用示例

1. BOM(操作瀏覽器)

BOM 沒有統(tǒng)一的官方標準(不同瀏覽器略有差異),核心功能和常用 API:

  • 控制瀏覽器窗口:尺寸、位置、關閉/打開新窗口
  • 操作瀏覽器導航:地址欄、歷史記錄、刷新
  • 瀏覽器環(huán)境:定時器、彈窗、本地存儲

常用示例代碼

// 1. 瀏覽器窗口相關
console.log(window.innerWidth); // 獲取瀏覽器可視區(qū)域寬度
window.open('https://www.baidu.com'); // 打開新窗口
window.close(); // 關閉當前窗口

// 2. 地址欄/導航相關
console.log(window.location.href); // 獲取當前頁面URL
window.location.reload(); // 刷新頁面
window.history.back(); // 瀏覽器后退

// 3. 定時器(BOM核心)
setTimeout(() => { alert('3秒后彈出'); }, 3000); // 延遲執(zhí)行
setInterval(() => { console.log('每秒執(zhí)行'); }, 1000); // 定時重復執(zhí)行

// 4. 彈窗
window.alert('提示框'); // 提示彈窗
window.confirm('確認框'); // 確認/取消彈窗

2. DOM(操作頁面內(nèi)容)

DOM 有 W3C 統(tǒng)一標準,它把 HTML 文檔解析成“節(jié)點樹”(比如 <html> 是根節(jié)點,<body> 是子節(jié)點,<div> 是孫子節(jié)點),JS 可以通過 DOM API 增刪改查頁面元素。

常用示例代碼

<!-- 先有一個簡單的HTML結構 -->
<div id="box">Hello DOM</div>
<ul>
  <li>列表1</li>
  <li>列表2</li>
</ul>

<script>
// 1. 獲取元素(查)
const box = document.getElementById('box'); // 通過ID獲取
const lis = document.getElementsByTagName('li'); // 通過標簽名獲取

// 2. 修改元素(改)
box.innerText = '修改后的內(nèi)容'; // 修改文本
box.style.color = 'red'; // 修改樣式

// 3. 創(chuàng)建元素(增)
const newLi = document.createElement('li');
newLi.innerText = '列表3';
document.querySelector('ul').appendChild(newLi); // 添加到ul里

// 4. 刪除元素(刪)
document.querySelector('ul').removeChild(lis[0]); // 刪除第一個li
</script>

三、DOM 和 BOM 的核心關系

image.png
  • 從屬關系:DOM 是 BOM 的一部分(documentwindow 的屬性);
  • 功能邊界:BOM 管“瀏覽器”,DOM 管“頁面內(nèi)容”;
  • 共同基礎:都基于 JS 操作,且都是前端交互的核心。

總結

  1. BOM 是操作瀏覽器本身的工具,核心是 window,關注瀏覽器窗口、導航、定時器等,無統(tǒng)一標準;
  2. DOM 是操作網(wǎng)頁內(nèi)容的工具,核心是 document,把 HTML 轉成節(jié)點樹,支持增刪改查,有 W3C 統(tǒng)一標準;
  3. 關系:DOM 屬于 BOM,都掛載在 window 下,是前端 JS 操作瀏覽器和頁面的兩大核心。
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容