JavaScript 的內(nèi)容,包含以下三部分:
ECMAScript(核心):JavaScript 語言基礎(chǔ)中燥;
DOM(文檔對象模型):規(guī)定了訪問HTML和XML的接口;
BOM(瀏覽器對象模型):提供了獨立于內(nèi)容而在瀏覽器窗口之間進行交互的對象和方法首尼。
一. ECMAScript
ECMAScript 規(guī)定了 JavaScript 腳本的核心語法,如 數(shù)據(jù)類型软能、關(guān)鍵字挠羔、保留字、運算符埋嵌、對象和語句等破加,它不屬于任何瀏覽器。ECMAScript 標準定義了 JavaScript 腳本中最為核心的內(nèi)容雹嗦,是 JavaScript 腳本的“骨架”范舀,有了“骨架”,就可以在它上面進行擴展了罪,如 DOM(文檔對象模型)和 BOM(瀏覽器對象模型)锭环。目前,ECMAScript 已經(jīng)發(fā)布了五個版本泊藕,最新版本是 V5辅辩,于2009年12月發(fā)布。
二. DOM
DOM 是“ Document Object Model ”的縮寫娃圆,簡稱“ 文件對象模型 ”玫锋,由W3C制定規(guī)范。DOM 定義了 JavaScript 操作 HTML 文檔的接口讼呢,提供了訪問 HTML 文檔(如body撩鹿、form、div悦屏、textarea等)的途徑以及操作方法节沦。瀏覽器載入 HTML 文檔后,將整個文檔規(guī)劃成由節(jié)點構(gòu)成的節(jié)點樹础爬,文檔中每個部分都是一個節(jié)點甫贯。例如:
<div id="div1" class="div1">DOM示例</div>
<div> 標簽是元素節(jié)點,“id”和“class”是屬性節(jié)點看蚜,“DOM示例”是文本節(jié)點叫搁。
三. BOM
BOM 是“ Browser Object Model ”的縮寫,簡稱“ 瀏覽器對象模型 ”碱茁。
BOM 定義了 JavaScript 操作瀏覽器的接口裸卫,提供了訪問某些功能(如瀏覽器窗口大小、版本信息纽竣、瀏覽歷史記錄等)的途徑以及操作方法墓贿。
遺憾的是茧泪,BOM 只是 ECMAScript 的一個擴展,沒有任何相關(guān)標準聋袋,W3C也沒有對該部分作出規(guī)范队伟,每個瀏覽器廠商都有自己的 BOM 實現(xiàn),這可以說是 BOM 的軟肋所在幽勒。
通常情況下嗜侮,瀏覽器特定的(即非 W3C 標準規(guī)定的)JavaScript 擴展都被看作 BOM 的一部分,主要包括:
<li>關(guān)閉啥容、移動瀏覽器及調(diào)整瀏覽器窗口大行饪拧;
<li>彈出新的瀏覽器窗口击吱;
<li>提供瀏覽器詳細信息的定位對象遥昧;
<li>提供載入到瀏覽器窗口的文檔詳細信息的定位對象炭臭;
<li>提供用戶屏幕分辨率詳細信息的屏幕對象;
<li>提供對cookie的支持憨奸;
<li>加入ActiveXObject類擴展BOM凿试,通過JavaScript實例化ActiveX對象。
注意:BOM 有一些“事實上的標準”那婉,如操作瀏覽器窗口详炬、獲取瀏覽器版本信息等寞奸,在不同瀏覽器中,對它們的實現(xiàn)方法是一樣的隐岛。