JavaScript高級程序設計第三版(第一章:JavaScript簡介)

1、因何而生,如何發展,現狀如何 JavaScript和ECMAScript之間的關係

1.一、JavaScript簡史

JavaScript誕生於1995年,由NetScape公司的布蘭登-愛奇開發。因爲JavaScript1.0得到巨大成功,NetScape隨即在NetScape Navigator3中又發佈了JavaScript1.1。於此同時,微軟就在其Internet Explorer3中加入了名爲JScript的JavaScript實現。然而,這個重大舉措同時標誌着JavaScript做爲一門語言,進入了人們視野。微軟推出了其JavaScript實現意味着3個不一樣的JavaScript版本:NetScape JavaScript、Internet Explorer3 JScript、ScriptEase CEvi。當時尚未標準規定JavaScript語法和特性,3個不一樣的JavaScript版本暴露了這個問題。所以,JavaScript的標準化問題被提上了日程。1997年,以JavaScript1.1爲藍本的建議被提交給了ECMA,該協會制定39號(微軟、NetScape、Sun、Borland和其餘公司專家組成)技術委員會,完成了ECMA-262☞定義了一種名爲ECMAScript的新腳本的語言標準。正則表達式

1.二、JavaScript實現

    一個完整的JavaScript的實現由三種不一樣部分組成:1.核心(ECMAScript)、2.文檔對象模型(DOM)、3.瀏覽器對象模型(BOM)。

  1. ECMAScript於Web瀏覽器沒有依賴關係。它定義的只是這門語言的基礎,一個通用的標準。Web瀏覽器只是ECMAScript實現可能的宿主環境之一。Web瀏覽器在ECMAScript的基礎上再針對瀏覽器特性提供語言的擴展。其餘宿主環境包括Node(一種服務器端JavaScript平臺)。
  2. ECMAScript規定了這門語言的(語法、類型、語句、關鍵字、保留字、操做符、對象)。JavaScript只是實現了ECMAScript標準。
  3. ECMAScript版本:ECMA-262的第5版發佈於2009年12月3日。
  4. ECMAScript初版:本質上於NetScape JavaScript1.1相同(只不過刪除了全部針對瀏覽器的代碼並作了一些小改動)。ECMA-262要求支持Unicode標準(從而支持多語言開發),並且對象也變成了平臺無關的。
  5. ECMAScript第二版:主要是編輯加工的結果。
  6. ECMAScript第三版:是對該標準第一次真正的修改。修改的內容涉及字符串處理、錯誤定義、數值輸出。還增長了正則表達式、新控制語句、try-catch異常處理支持。第三版標誌着ECMAScript成爲了一門真正的編程語言。
  7. ECMAScript第四版:是對這門語言進行了一次全面的檢核修訂。第四版不只包含了強類型變量、新語句、新數據結構、真正的類和經典繼承,還定義了數據交互的新方式(因爲ECMAScript3.1的出現,ECMA-262第四版在正式發佈前被放棄)。
  8. ECMAScript第五版(ECMAScript3.1):在第三版澄清第三版已知的歧義並添加了新功能。如:原生JSON對象、繼承的方法和高級屬性定義,另外還包含一種嚴格模式。
  9. Web瀏覽器對ECMAScript的支持。2008年五大主流瀏覽器所有作到了與ECMA-262兼容。IE8是第一個着手實現ECMA-262第5版的瀏覽器,並在IE9中提供了完整的支持。下圖列出了ECMAScript受主流Web瀏覽器的支持狀況:

2、DOM(Document Object Model,文檔對象模型)

DOM是針對XML但通過擴展用於HTML的應用程序編程接口(API)。HTML或XML中的每一個組成部分都是某種類型的節點,這些節點又包含不一樣類型的數據。編程

2.一、爲何使用DOM

NetScape navigator4和Internet Explorer4分別支持不一樣的DHTML(Dynamic HTML)。因爲NetScape和微軟在開發DHTML各持己見,沒法實現只編寫一個HTML文件就能在任何瀏覽器中運行。此時W3C開始規劃DOM。瀏覽器

2.二、DOM級別

  1. DOM1級於1998年10月成爲W3C推薦標準。DOM1由DOM核心(DOM Core)和DOM HTML。DOM Core規定如何映射基於XML的文檔結構,簡化對文檔的任意部分的訪問和操做。DOM HTML在DOM Core基礎上擴展,添加了對HTML的對象和方法。
  2. DOM2級在原來DOM基礎上又擴充了(DHTML一直都是支持的)鼠標和用戶界面事件、範圍、遍歷(迭代DOM對象的方法)等細分模塊,並且經過對象接口增長了CSS的支持。DOM2引入了DOM視圖、DOM事件、DOM樣式、DOM的遍歷和範圍。
  3. DOM3級進一步擴展了DOM,引入了統一方式加載和保存文檔的方法(DOM Load and Save)。新增了驗證文檔的的方法(DOM Validation)。DOM3也對DOM核心進行了擴展,開始支持XML1.0規範,涉及XML Infoset、XPath、XML Base。
  4. Web瀏覽器對DOM的支持:

3、BOM(Browser Object Model,瀏覽器對象模型)

NetScape navigator3和Internet Explorer3支持能夠訪問和操做瀏覽器窗口的BOM。BOM能夠控制瀏覽器顯示頁面之外的部分。可是BOM做爲JavaScript實現的一部分但沒有相關的標準。這個問題在HTML5中獲得解決。服務器

3.一、BOM擴展功能

  1.  彈出新瀏覽器窗口的功能。
  2. 移動、縮放和關閉瀏覽器窗口的功能。
  3. 提供瀏覽器詳細信息的navigator對象。
  4. 提供瀏覽器所加載頁面的詳細信息location對象。
  5. 提供用戶顯示器分辨率詳細信息的screen對象。
  6. 對cookies的支持。
  7. 像XMLHttpRequest和IE的ActiveXObject這樣的自定義對象。

4、小結

JavaScript的組成部分:cookie

  • 核心(ECMAScript)
  • 文檔對象模型(DOM)
  • 瀏覽器對象模型(BOM)在當前五個主流瀏覽器中都獲得了不一樣程度支持。其中,全部瀏覽器對ECMAScript第3版支持上大致不錯。儘管各個瀏覽器都實現了某些衆所周知的共同特性,但其餘特性仍是會因瀏覽器而不一樣。
相關文章
相關標籤/搜索