## JavaScript實現
* * * * *
1.JavaScript是專為網頁交互而設計的腳本語言,一個完整的JavaScript實現應該由下列三個不同的部分組成(JavaScript與ECMAScript之間的關系):
* **核心(ECMAScript)**,由ECMA-262定義,提供核心語言功能。
* **文檔對象模型(DOM)**,提供訪問和操作網頁內容的方法和接口。
* **瀏覽器對象模型(BOM)**,提供與瀏覽器交互的方法和接口。
#### ECMAScript
* * * * *
2.ECMA-262是一份定義了一種名為ECMAScript的新腳本語言的**標準**。ECMA-262規定的內容包括:**語法、類型、語句、關鍵字、保留字、操作符、對象**。
3.ECMAScript與Web瀏覽器沒有依賴關系。實際上,這門語言本身并不包含輸入和輸出定義。ECMA-262定義的只是這門語言的基礎,而在此基礎上可以構建更完善的腳本語言。我們常見的Web瀏覽器只是ECMAScript實現可能的宿主環境之一。其他宿主環境包括Node和Adobe Flash。
#### 文檔對象模型(DOM)
* * * * *
4.**DOM1級**由兩個模塊組成:**DOM Core**和**DOM HTML**。
其中DOM Core規定的是如何映射基于XML的文檔結構,以便簡化對文檔中任意部分的訪問和操作。DOM HTML模塊則在DOM核心的基礎上加以擴展,添加了針對HTML的對象和方法。
5.**DOM2級**引入了下列新模塊,也給出了眾多新類型的接口和定義。
* **DOM Views**:定義了跟蹤不同文檔(例如,應用CSS之前和之后的文檔)視圖的接口。
* **DOM Events**:定義了事件和事件處理的接口。
* **DOM Style**:定義了基于CSS為元素應用樣式的接口。
* **DOM Traversal and Range**(遍歷和范圍):定義了遍歷和操作文檔樹的方法.
6.**DOM3級**則進一步擴展了DOM,引入了以統一方式加載和保存文檔的方法--在**DOM Load and Save**(加載和保存模塊)中定義;新增了驗證文檔的方法--在**DOM Validation**(驗證模塊)中定義。
7.DOM 0級標準實際上是不存在的,所謂DOM 0級只是DOM歷史坐標中的一個參照點而已。具體說來,DOM 0級指的是IE 4.0和Netscape Navigator 4.0最初支持的DHTML。
#### 瀏覽器對象模型(BOM)
* * * * *
8.從根本上講,BOM只處理瀏覽器窗口和框架,但人們習慣上也把所有針對瀏覽器的JS擴展算作BOM的一部分,它們包括:
- 彈出新瀏覽器窗口的功能
- 移動、縮放和關閉瀏覽器窗口的功能
- 提供瀏覽器詳細信息的navigator對象
- 提供瀏覽器所加載頁面的詳細信息的location對象
- 提供用戶顯示器分辨率詳細信息的screen對象
- 對cookies的支持
- 像XMLHttpRequest和IE的ActiveXObject這樣的自定義對象。
9.對于已經納入**HTML5**標準的**BOM**來說,盡管各瀏覽器都實現了某些眾所周知的共同特性,但其他特性還是會因瀏覽器而異。