一個完整的JavaScript實驗應該由下列三個不同的部分組成。
- 核心 (ECMAScript)
- 文檔對象模型 (DOM)
- 瀏覽器對象模型 (BOM)
JavaScript 實現(xiàn)
ECMAScript
由ECMA-262定義的ECMAScript與Web瀏覽器沒有依賴關系。我們常見的Web瀏覽器只是ECMAScript的宿主環(huán)境之一。其他宿主環(huán)境包括Node(一種服務端JavaScript平臺)和Adobe Flash。
EcmaScript大致規(guī)定了這門語言的下列組成部分:
- 語法
- 類型
- 語句
- 關鍵字
- 保留字
- 操作符
- 對象
ECMAScript就是對實現(xiàn)該標準的語言的描述。
文檔對象模型(DOM)
文檔對象模型(DOM, Document Object Model)是針對XML但經(jīng)過擴展用于HTML的應用程序編程接口(API,Application Programming Interface)。
DOM 把整個頁面映射稱為一個多層節(jié)點結(jié)構(gòu)。
HTML或XML頁面中的每個組成部分都是歐中類型的節(jié)點,這些節(jié)點又包含著不同類型的數(shù)據(jù)。
<html>
<head>
<title>HTML網(wǎng)頁</title>
</head>
<body>
<p>Hello!</p>
</body>
</html>
DOM分層節(jié)點圖
通過DOM創(chuàng)建這個表示文檔的樹形圖,就獲得了控制頁面內(nèi)容和結(jié)構(gòu)的主動權(quán)。借組DOM提供的API,可以輕松自如的添加、修改、刪除、替換任何節(jié)點。
瀏覽器對象模型(BOM)
瀏覽器對象模型(BOM,Browser Object Model)。可以使用BOM控制瀏覽器顯示頁面以外的部分。從根本上講,BOM只處理瀏覽器窗口和框架;但人們習慣把所有針對瀏覽器的JavaScript擴展算作BOM的一部分。
例如:
- 彈出新瀏覽器窗口的功能
- 移動、縮放和關閉瀏覽器窗口的功能
- 提供瀏覽器詳細信息的navigator對象
- 提供瀏覽器所加載頁面詳細信息的location對象
- 提供用戶顯示器分辨率詳細信息的screen對象
- 對cookies的支持
- 像XMLHttpRequest和IE的ActiveXObject這樣的自定義對象