JavaScript簡介
JavaScript誕生於1995年,當時,它的主要目的是處理以前有服務端語言(如Perl)負責的一些輸入驗證操作。
JavaScript簡史
1995年2月當時就職於Netscape公司的布蘭登.艾奇(Brendan Eich)發布的Netscape Navigator 2 開發一種名為
LiveScript的腳本語言,然后熱炒Java的順風車。臨時把LiveScript改名為JavaScript。
1997年,以JavaScript1.1為藍本的建議被提交給了歐洲計算機制造協商會。TC39(39號技術委員會)由來自Netscape,Sun,微軟,Borland及其他關注腳本語言發展的公司的程序員組成,他們經歷數月的努力完成了ECMA—262定義一種名為ECMAScript(發音為“ek-ma-script”)的新腳本語言的標准。
第二年,ISO/IEC(Internationnal Organization for Standardization and International Electrotechnical Commission,國際標准化組織和國際電工委員會)也采用了ECMAScript作為標准(即ISO/IEC-16262)。自此以后,瀏覽器開發商就開始致力於將ECMAScript作為各自JavaScript實現的基礎,也在不同程度上取得了成功。
JavaScript實現
通常我們把JavaScript和ECMAScript用來表達相同的含義,但是一個完整的JavaScript由以下三個不同的部分組成。
1.核心(ECMAScript)
2.文檔對象模型(DOM)
3.瀏覽器對象模型(BOM)
ECMAScript
事實上由ECMA-262定義的ECMAScript與web瀏覽器沒有依賴關系。實際上,這門語言本身並不包含輸入和輸出定義。只是定義了這門語言的基礎,而在基礎上可以構建更完善的腳本語言。常見的web瀏覽器只是ECMAScript實現的可能宿主環境之一。宿主環境不僅提供基本的ECMAScript的實現,同時也會提供該語言的擴展,以便語言與環境之間的對接交互。如DOM,則利用ECMAScript的核心類型和語法提供更多更具體的功能,以便實現針對環境的操作。其他宿主環境包括Node(一種服務端JavaScript平台)和Adode Flash。
ECMA-262標准規定了這門語言的下列組成部分:
1.語法
2.類型
3.語句
4.關鍵字
5.保留字
6.操作符
7.對象
文檔對象模型(DOM)
文檔對象模型(DOM, Doument Object Model)是針對XML但經過擴展用於HTML的應用程序編程接口(API,Application Programming Interface)。DOM把整個頁面映射為一個多層點結構。HTML或XML頁面中的每個組成部分都是某種類型的節點,這些節點又包含着不同的類型數據。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>DOM</title> </head> <body> <header>hello ydb!</header> </body> </html>
通過DOM創建的這個表示文檔的樹形圖,開發人員獲得了控制頁面內容和結構的主動權。借助DOM提供的API,開發人員可以輕松刪除,添加,替換或修改任何節點。
為什么要使用DOM了?,由於Netscape和微軟在開發DHTML(Dynamic HTML)各持己見,所有就出現了web開發領域的兩強割據,瀏覽器互不兼容的局面。所以負責制定Web通信標准的W3C(World Wide Web Consortium,萬維網聯盟)開始着手規划DOM。
瀏覽器對象模型(BOM)
根本上講,BOM只處理瀏覽器窗口和框架;習慣上也把所有針對瀏覽器的JavaScript的擴展算作BOM的一部分。下面是一些這樣的擴展:
1.彈出新瀏覽器窗口的功能
2.移動,縮放和關閉瀏覽器窗口餓功能
3.提供瀏覽器詳細信息的navigator對象
4.提供瀏覽器所加載頁面詳細信息的location對象
5.提供用戶顯示器分辨率詳細信息的screen對象
6.對cookies的支持
7.像XMLHttpRequest和IE的ActiveXObject這樣的自定義對象
小結
JavaScript是一種專門為網頁交互而設計的腳本語言,由下列三個不同的部分組成:
1.ECMAScript 由ECMA-262定義,提供核心語言功能。
2.文檔對象模型(DOM),提供訪問和操作網頁內容的方法和接口
3.瀏覽器對象模型(BOM),提供與瀏覽器交互的方法和接口