JavaScript誕生于1995年,誕生之初是用來做客戶端數據校驗,節省與服務器的網絡交互,因為當時撥號上網實在是太慢了。JavaScript發展至今,已經成為全能型語言。
發展歷史
Netscape公司開發名為LiveScript的腳本語言,因為Java太流行了,所以改名為JavaScript,現在叫榜名牌
由于JavaScript1.0非常成功,IE瀏覽器在3.0加入對JavaScript的實現,成為JScript,最終將Netscape干趴下
還有一家名為ScriptEase實現的CEnvi,截止目前,三家公司實現了三個版本的JavaScript
1997年,JavaScript開始標準化,標準名為ECMAScript,ECMA為歐洲計算機制造商協會(European Computer Manufacturers Association)的簡寫
JavaScript實現
其實JavaScript包括三個不同部分組成,ECMAScript標準(核心),DOM(文檔對象模型),BOM(瀏覽器對象模型)
ECMAScript
ECMAScript和Web瀏覽器沒有依賴關系,Web瀏覽器只是ECMAScript的宿主環境之一,同時,Web瀏覽器也會對ECMAScript提供擴展,以便語言和環境進行交互。擴展如DOM,BOM等。其他的宿主環境包括Node,Adobe Flash等,JavaScript實現了ECMAScript,Adobe ActionScript也實現了ECMAScript
文檔對象模型(DOM)
DOM是對XML但經過擴展用于HTML的應用程序編程接口,DOM把整個頁面映射為一個多層節點結構,因為有了DOM,開發人員獲得了控制頁面內容和結構的主動權,喜出望外/(ㄒoㄒ)/~~
為什么要使用DOM
因為實現了DHTML的IE和Netscape Navigator,開發人員第一次獲得了不需重新加載網頁就可以動態改變網頁的外觀和內容了,痛哭流涕啊。在Web技術巨大進步的同時,也帶來了巨大的問題,兩大巨頭對于DHTML的實現出現了分歧,為日后的Web前端各種蛋疼了兼容性問題埋下了巨大的隱患。
為了我們這些前端開發人員不加班,不蛋疼,負責制定Web通信的W3C(萬維網聯盟)開始著手規則DOM(很久以前)
DOM級別
DOM1:DOM核心和DOM HTML
DOM核心規定如何映射基于XML的文檔結構
DOM HTML在DOM核心的基礎上加以擴展,添加了對HTML的對象和方法
注意:DOM并不是針對JavaScript,很多別的語言也實現了DOM
DOM2:在DOM1基礎上擴充了鼠標、UI事件、范圍、遍歷(迭代DOM文檔的方法)等,而且通過對象接口增加了對CSS的支持。DOM1中的DOM核心經過擴展支持XML命名空間
新增DOM視圖,DOM事件,DOM樣式,DOM遍歷和范圍
DOM3:在DOM加載和保存模塊中定義了以統一方式加載和保存文檔的方法,在DOM驗證模塊中定義驗證文檔的方法。對DOM核心進行擴展,開始支持XML1.0規范
其他DOM標準
- SVG(可伸縮矢量圖)
- MathML(數學標記語言)
- SMIL(多媒體集成語言)
還有另外一些語言也開發了自己的DOM實現,例如Mozilla的XUL(XML用戶界面語言)
Web瀏覽器對DOM的支持
DOM123分別在不同的瀏覽器版本中得到支持
瀏覽器對象模型(BOM)
開發人員使用BOM可以控制瀏覽器顯示的頁面以外的部分,BOM一直沒有相關標準,直到HTML5才得以開始解決
BOM可以:
- 彈出新瀏覽器窗口
- 移動、縮放、關閉瀏覽器窗口的功能
- 提供瀏覽器詳細的navigator對象
- 提供瀏覽器所加載頁面的詳細信息的location對象
- 提供screen對象
- cookies