Javascript 誕生于 1995 年。它當時的目的是為了驗證表單輸入的驗證。因為在 JavaScript問世之前,表單的驗證都是通過服務器端驗證的。而當時都是電話撥號上網的年代,服務器驗證數據是一件非常痛苦的事情。
經過許多年的發展,JavaScript 從一個簡單的輸入驗證成為一門強大的編程語言。所以 ,學會使用它是非常簡單的,而真正掌握它則需要很漫長的時間。那么本套視頻就帶領大家進入 JavaScript 課堂,去學習和理解它。
JavaScript 是一種具有面向對象能力的、解釋型的程序設計語言。更具體一點,它是基于對象和事件驅動并具有相對安全性的客戶端腳本語言。因為他不需要在一個語言環境下運行,而只需要支持它的瀏覽器即可。它的主要目的是,驗證發往服務器端的數據、增加 Web互動、加強用戶體驗度等。
松散性 JavaScript 語言核心與 C、C++、Java 相似,比如條件判斷、循環、運算符等。但,它卻是一種松散類型的語言,也就是說,它的變量不必具有一個明確的類型。
對象屬性 JavaScript 中的對象把屬性名映射為任意的屬性值。它的這種方式很像哈希表或關聯數組,而不像 C 中的結構體或者 C++、Java 中的對象。
繼承機制 JavaScript 中的面向對象繼承機制是基于原型的,這和另外一種不太為人所知的 Self 語言很像,而和 C++以及Java 中的繼承大不相同。
引子 大概在 1992 年,有一家公司 Nombas 開發一種叫做 C–(C-minus-minus,簡稱 Cmm)的嵌入式腳本語言。后應覺得名字比較晦氣,最終改名為 ScripEase。而這種可以嵌入網頁中的腳本的理念將成為因特網的一塊重要基石。
誕生 1995 年,當時工作在 Netscape(網景)公司的布蘭登(Brendan Eich)為解決類似于“向服務器提交數據之前驗證”的問題。在 Netscape Navigator 2.0 與 Sun 公司聯手開發一個稱之為LiveScript 的腳本語言。為了營銷便利,之后更名為 JavaScript(目的是在 Java 這課大樹下好乘涼)。
邪惡的后來者 因為 JavaScript 1.0 如此成功,所以微軟也決定進軍瀏覽器,發布了 IE 3.0 并搭載了一個 JavaScript 的克隆版,叫做 JScript(這樣命名是為了避免與 Netscape潛在的許可糾紛),并且也提供了自己的 VBScript。
標準的重要 在微軟進入后,有 3 種不同的 JavaScript 版本同時存在:NetscapeNavigator 3.0 中的JavaScript、IE 中的 JScript 以及 CEnvi 中的 ScriptEase。與 C 和其他編程語言不同的是,JavaScript 并沒有一個標準來統一其語法或特性,而這 3 種不同的版本恰恰突出了這個問題。隨著業界擔心的增加,這個語言標準化顯然已經勢在必行。
ECMA 1997 年,JavaScript 1.1 作為一個草案提交給歐洲計算機制造商協會(ECMA)。第 39技術委員會(TC39)被委派來“標準化一個通用、跨平臺、中立于廠商的腳本語言的語法和語義”(http://www.ecma-international.org/memento/TC39.htm)。由來自 Netscape、Sun、微軟、Borland 和其他一些對腳本編程感興趣的公司的程序員組成的TC39 錘煉出了ECMA-262,該標準定義了叫做 ECMAScript 的全新腳本語言。
靈敏的微軟、遲鈍的網景 雖然網景開發了 JavaScript 并首先提交給 ECMA 標準化,但因計劃改寫整個瀏覽器引擎的緣故,網景晚了整整一年才推出“完全遵循ECMA 規范”的 JavaScript1.3。而微軟早在一年前就推出了“完全遵循 ECMA 規范”的 IE4.0。這導致一個直接惡果:JScript 成為 JavaScript語言的事實標準。
標準的發展 在接下來的幾年里,國際標準化組織及國際電工委員會(ISO/IEC)也采納 ECMAScript作為標準(ISO/IEC-16262)。從此,Web 瀏覽器就開始努力(雖然有著不同程度的成功和失?。?ECMAScript 作為 JavaScript 實現的基礎。
山寨打敗原創 JScript 成為 JavaScript 語言的事實標準,加上 Windows 綁定著 IE 瀏覽器,幾乎占據全部市場份額,因此,1999 年之后,所有的網頁都是基于 JScript 來開發的。而 JavaScript1.x 變成可憐的兼容者。
網景的沒落與火狐的崛起 網景在微軟強大的攻勢下,1998 年全面潰敗。但,星星之火可以燎原。同年成立 Mozilla項目中Firefox(火狐瀏覽器)在支持 JavaScript 方面無可比擬,在后來的時間里一步步蠶食 IE的市場,成為全球第二大瀏覽器。
谷歌的野心 Google Chrome,又稱 Google 瀏覽器,是一個由Google(谷歌)公司開發的開放原始碼網頁瀏覽器。他以簡潔的頁面,極速的瀏覽,一舉成為全球第三大瀏覽器。隨著移動互聯網的普及,嵌有 Android 系統的平板電腦和智能手機,在瀏覽器這塊將大有作為。
蘋果的戰略 Safari 瀏覽器是蘋果公司各種產品的默認瀏覽器,在蘋果的一體機(iMac)、筆記本(Mac) 、MP4(ipod)、iphone(智能手機)、ipad(平板電腦),并且在 windows 和 linux 平臺都有相應版本。目前市場份額全球第四,但隨著蘋果的產品不斷的深入人心,具有稱霸之勢。
幸存者 Opera 的全球市場份額第五,2%左右。它的背后沒有財力雄厚的大公司,但它從“瀏覽器大戰”存活下來的,有著非常大的潛力。
雖然 JavaScript 和 ECMAScript 通常被人們用來表達相同的含義,但 JavaScript 的含義卻比ECMA-262中規定的要多得多。一個完整的JavaScript應該由下列三個不同的部分組成。
1.核心(ECMAScript) 2.文檔對象模型(DOM) 3.瀏覽器對象模型(BOM)
ECMAScript 介紹 由 ECMAScript-262 定義的 ECMAScript 與 Web 瀏覽器沒有依賴關系。ECMAScript 定義的只是這門語言的基礎,而在此基礎之上可以構建更完善的腳本語言。我們常見的 Web瀏覽器只是 ECMAScript 實現可能的宿主環境之一。 既然他不依賴于 Web 瀏覽器,那么他還在哪些環境中寄宿呢?比如:ActionScript、ScriptEase 等。而他的組成部分有:語法、類型、語句、關鍵字、保留字、操作符、對象等。
ECMAScript 版本 ECMAScript 目前有四個版本,1、2、3、4、5 版本,這里不再進行詳細探討。有興趣的可以搜索查閱。
Web 瀏覽器對 ECMAScript 的支持 到了 2008 年,五大主流瀏覽器(IE、Firefox、Safari、Chrome、Opera)全部做到了與ECMA-262 兼容。其中,只有 Firefox 力求做到與該標準的第 4 版兼容。以下是支持表(僅供參考使用!)。
瀏 覽 器 | ECMAScript 兼容性 |
---|---|
Netscape Navigator 2 | ---- |
Netscape Navigator 3 | ---- |
Netscape Navigator 4 – 4.05 | ---- |
Netscape Navigator 4.06 – 4.79 | 第 1 版 |
Netscape 6+ (Mozilla 0.6.0+) | 第 3 版 |
Internet Explorer 3 | ---- |
Internet Explorer 4 | ---- |
Internet Explorer 5 | 第 1 版 |
Internet Explorer 5.5 – 7 | 第 3 版 |
Internet Explorer 8 | 第 3.1 版(不完全兼容) |
Internet Explorer 9 | 第 5 版 |
Opera 6 - 7.1 | 第 2 版 |
Opera 7.2+ | 第 3 版 |
Opera 11+ | 第 5 版 |
Safari3+ | 第 3 版 |
Firefox 1–2 | 第 3 版 |
Firefox 3/4/5/6/7/8/9 | 第 3/5 版 |
文檔對象模型 (DOM)
文檔對象模型(DOM,Document Object Model)是針對 xml 但經過擴展用于 HTML 的應用程序編程接口(API,application PRogramming Interface)。
DOM 有三個級別,每個級別都會新增很多內容模塊和標準(有興趣可以搜索查詢)。以下是主流瀏覽器對 DOM 支持的情況:
瀏 覽 器 | DOM 兼容性 |
---|---|
Netscape Navigator 1 – 4.x | ---- |
Netscape Navigator 6+(Mozilla 0.6.0+) | 1 級、2 級(幾乎全部)、3 級(部分) |
Internet Explorer 2 – 4.x | ---- |
Internet Explorer 5 | 1 級(最小限度) |
Internet Explorer 5.5 – 7 | 1 級(幾乎全部) |
Opera 1 – 6 | ---- |
Opera 7 – 8.x | 1 級(幾乎全部)、2 級(部分) |
Opera 9+ | 1 級、2 級(幾乎全部)、3 級(部分) |
Safari 1.0x | 1 級 |
Safari 2+ | 1 級、2 級(部分) |
Chrome 0.2+ | 1 級、2 級(部分) |
Firefox 1+ | 1 級、2 級(幾乎全部)、3 級(部分) |
瀏覽器對象模型 (BOM) 訪問和操作瀏覽器窗口的瀏覽器對象模型(BOM,Browser Object Model)。開發人員使用 BOM 可以控制瀏覽器顯示頁面以外的部分。而 BOM 真正與眾不同的地方(也是經常會導致問題的地方),還是它作為JavaScript 實現的一部分,至今仍沒有相關的標準。
JavaScript 版本 身為 Netscape“繼承人”的 Mozilla 公司,是目前唯一沿用最初的JavaScript 版本編號的瀏覽器開發商。在網景把 JavaScript 轉手給Mozilla 項目的時候,JavaScript 在瀏覽器中最后的版本號是 1.3。后來,隨著 Mozilla 繼續開發,JavaScript 版本號逐步遞增。
瀏 覽 器 | JavaScript 版本 |
---|---|
Netscape Navigator 2 | 1.0 |
Netscape Navigator 3 | 1.1 |
Netscape Navigator 4 | 1.2 |
Netscape Navigator 4.06 | 1.3 |
Netscape 6+ (Mozilla 0.6.0+) | 1.5 |
Firefox 1 | 1.5 |
Firefox 1.5 | 1.6 |
Firefox 2 | 1.7 |
Firefox 3 | 1.8 |
Firefox 3.1+ | 1.9 |
代碼編輯器:Notepad++。 瀏覽器:谷歌瀏覽器,火狐瀏覽器,IE 瀏覽器,IETest 工具等。 PS:學習 JavaScript 需要一定的基礎,必須有 xhtml+CSS 基礎、至少一門服務器端編程 語言的基礎(比如 php)、一門面向對象技術(比如 Java)、至少有一個 Web 開發的項目基礎(例如留言板程序等)。
新聞熱點
疑難解答