1. 程式人生 > >JavaScript快速入門-簡介

JavaScript快速入門-簡介

obj strong 存在 -s ons 克隆 廠商 語法 mas

一、JavaScript歷史(摘自w3school)

JavaScript 是因特網上最流行的腳本語言,它存在於全世界所有 Web 瀏覽器中,能夠增強用戶與 Web 站點和 Web 應用程序之間的交互。JavaScript 是因特網上最流行的腳本語言,它存在於全世界所有 Web 瀏覽器中,能夠增強用戶與 Web 站點和 Web 應用程序之間的交互。

Nombas 和 ScriptEase

大概在 1992 年,一家稱作 Nombas 的公司開發了一種叫做 C 減減(C-minus-minus,簡稱 Cmm)的嵌入式腳本語言。Cmm 背後的理念很簡單:一個足夠強大可以替代宏操作(macro)的腳本語言,同時保持與 C (和 C ++)足夠的相似性,以便開發人員能很快學會。這個腳本語言捆綁在一個叫做 CEnvi 的共享軟件中,它首次向開發人員展示了這種語言的威力。

Nombas 最終把 Cmm 的名字改成了 ScriptEase,原因是後面的部分(mm)聽起來過於消極,同時字母 C “令人害怕”。

現在 ScriptEase 已經成為了 Nombas 產品背後的主要驅動力。

Netscape 發明了 JavaScript

當 Netscape Navigator 嶄露頭角時,Nombas 開發了一個可以嵌入網頁中的 CEnvi 的版本。這些早期的試驗被稱為 Espresso Page(濃咖啡般的頁面),它們代表了第一個在萬維網上使用的客戶端語言。而 Nombas 絲毫沒有料到它的理念將會成為萬維網的一塊重要基石。

當網上沖浪越來越流行時,對於開發客戶端腳本的需求也逐漸增大。此時,大部分因特網用戶還僅僅通過 28.8 kbit/s 的調制解調器連接到網絡,即便這時網頁已經不斷地變得更大和更復雜。而更加加劇用戶痛苦的是,僅僅為了簡單的表單有效性驗證,就要與服務器進行多次地往返交互。設想一下,用戶填完一個表單,點擊提交按鈕,等待了 30 秒的處理後,看到的卻是一條告訴你忘記填寫一個必要的字段。

那時正處於技術革新最前沿的 Netscape,開始認真考慮開發一種客戶端腳本語言來解決簡單的處理問題。

當時工作於 Netscape 的 Brendan Eich,開始著手為即將在 1995 年發行的 Netscape Navigator 2.0 開發一個稱之為 LiveScript 的腳本語言,當時的目的是在瀏覽器和服務器(本來要叫它 LiveWire)端使用它。Netscape 與 Sun 及時完成 LiveScript 實現。

就在 Netscape Navigator 2.0 即將正式發布前,Netscape 將其更名為 JavaScript,目的是為了利用 Java 這個因特網時髦詞匯。Netscape 的賭註最終得到回報,JavaScript 從此變成了因特網的必備組件。

三足鼎立

因為 JavaScript 1.0 如此成功,Netscape 在 Netscape Navigator 3.0 中發布了 1.1 版。恰巧那個時候,微軟決定進軍瀏覽器,發布了 IE 3.0 並搭載了一個 JavaScript 的克隆版,叫做 JScript(這樣命名是為了避免與 Netscape 潛在的許可糾紛)。微軟步入 Web 瀏覽器領域的這重要一步雖然令其聲名狼藉,但也成為 JavaScript 語言發展過程中的重要一步。

在微軟進入後,有 3 種不同的 JavaScript 版本同時存在:網景公司的 JavaScript、微軟的 JScript 以及Nombas 的 ScriptEase。與 C 和其他編程語言不同的是,JavaScript 並沒有一個標準來統一其語法或特性,而這 3 種不同的版本恰恰突出了這個問題。隨著業界擔心的增加,這個語言的標準化顯然已經勢在必行。

標準化

1997 年,JavaScript 1.1 作為一個草案提交給歐洲計算機制造商協會(ECMA)。第 39 技術委員會(TC39)被委派來“標準化一個通用、跨平臺、中立於廠商的腳本語言的語法和語義”(http://www.ecma-international.org/memento/TC39.htm)。由來自 Netscape、Sun、微軟、Borland 和其他一些對腳本編程感興趣的公司的程序員組成的 TC39 錘煉出了 ECMA-262,該標準定義了名為 ECMAScript 的全新腳本語言。

在接下來的幾年裏,國際標準化組織及國際電工委員會(ISO/IEC)也采納 ECMAScript 作為標準(ISO/IEC-16262)。從此,Web 瀏覽器就開始努力(雖然有著不同的程度的成功和失敗)將 ECMAScript 作為 JavaScript 實現的基礎。

二、JavaScript實現

上面的ECMAScript 是一個重要的標準,但它並不是 JavaScript 唯一的部分,當然,也不是唯一被標準化的部分。實際上,一個完整的 JavaScript 實現是由以下 3 個不同部分組成的:

  • ECMAScript核心
  • DOM文檔對象模型
  • BOM瀏覽器對象模型

1、ECMAScript 的內容

  • 語法
  • 類型
  • 語句
  • 關鍵字
  • 保留字
  • 運算符
  • 對象

ECMAScript 僅僅是一個描述,定義了腳本語言的所有屬性、方法和對象。其他語言可以使用 ECMAScript 來作為功能的基準,JavaScript 就是這樣:

技術分享圖片

2、DOM(文檔對象模型 )

DOM是 HTML 和 XML 的應用程序接口(API)。DOM 將把整個頁面規劃成由節點層級構成的文檔。DOM的主要目的是方便人們對HTML的控制。

請考慮下面的 HTML 頁面:

<html>
  <head>
    <title>Sample Page</title>
  </head>
  <body>
    <p>hello world!</p>
  </body>
</html>

  

這段代碼可以用 DOM 繪制成一個節點層次圖:

技術分享圖片

DOM 通過創建樹來表示文檔,從而使開發者對文檔的內容和結構具有空前的控制力。用 DOM API 可以輕松地刪除、添加和替換節點。

3、BOM(瀏覽器對象模型)

BOM(瀏覽器對象模型),可以對瀏覽器窗口進行訪問和操作。使用 BOM,開發者可以移動窗口、改變狀態欄中的文本以及執行其他與頁面內容不直接相關的動作。使 BOM 獨樹一幟且又常常令人懷疑的地方在於,它只是 JavaScript 的一個部分,沒有任何相關的標準。

BOM 主要處理瀏覽器窗口和框架,不過通常瀏覽器特定的 JavaScript 擴展都被看做 BOM 的一部分。這些擴展包括:

  • 彈出新的瀏覽器窗口
  • 移動、關閉瀏覽器窗口以及調整窗口大小
  • 提供 Web 瀏覽器詳細信息的定位對象
  • 提供用戶屏幕分辨率詳細信息的屏幕對象
  • 對 cookie 的支持
  • IE 擴展了 BOM,加入了 ActiveXObject 類,可以通過 JavaScript 實例化 ActiveX 對象

由於沒有相關的 BOM 標準,每種瀏覽器都有自己的 BOM 實現。有一些事實上的標準,如具有一個窗口對象和一個導航對象,不過每種瀏覽器可以為這些對象或其他對象定義自己的屬性和方法。

  • Window 對象
  • Navigator 對象
  • Screen 對象
  • History 對象
  • Location 對象

三、總結

1、Nombas公司創造的ScriptEase,ScriptEase的出現成為了JavaScript出現的驅動力。

2、網景公司的Brendan Eich設計出了JavaScript架構。(為了應付公司安排的任務,他只用10天時間就把Javascript設計出來了。)

3、JavaScript1.0出來後,由於當時網景公司在瀏覽器上是一家獨大,所以在JavaScript標準化上非常緩慢。但是此時勁敵微軟出現了,當時微軟搞出來一個JavaScript的克隆版JScript ,微軟通過他免費的瀏覽器(IE)在全世界推廣,在瀏覽器上獲得了很大的份額,所以微軟也開始推行自己的標準,希望能夠以自己的標準作為整個行業的標準。最後,網景公司被微軟一步步蠶食,在2003年網景公司解散。

4、ECMAScript 標準出現過程。

  • 1997年JavaScript提交標準草案,1998年6月,ECMAScript 2.0版發布;
  • 1999年12月,ECMAScript 3.0版發布,成為JavaScript的通行標準,得到了廣泛支持。
  • 2007年10月,ECMAScript 4.0版草案發布,對3.0版做了大幅升級,預計次年8月發布正式版本。草案發布後,由於4.0版的目標過於激進,各方對於是否通過這個標準,發生了嚴重分歧。以Yahoo、Microsoft、Google為首的大公司,反對JavaScript的大幅升級,主張小幅改動;以JavaScript創造者Brendan Eich為首的Mozilla公司,則堅持當前的草案。
  • 2008年7月,由於對於下一個版本應該包括哪些功能,各方分歧太大,爭論過於激進,ECMA開會決定,中止ECMAScript 4.0的開發,將其中涉及現有功能改善的一小部分,發布為ECMAScript 3.1,而將其他激進的設想擴大範圍,放入以後的版本,由於會議的氣氛,該版本的項目代號起名為Harmony(和諧)。會後不久,ECMAScript 3.1就改名為ECMAScript 5。
  • 2009年12月,ECMAScript 5.0版正式發布。Harmony項目則一分為二,一些較為可行的設想定名為JavaScript.next繼續開發,後來演變成ECMAScript 6;一些不是很成熟的設想,則被視為JavaScript.next.next,在更遠的將來再考慮推出。
  • 2011年6月,ECMAscript 5.1版發布,並且成為ISO國際標準(ISO/IEC 16262:2011)。
  • 2013年3月,ECMAScript 6草案凍結,不再添加新功能。新的功能設想將被放到ECMAScript 7。
  • 2013年12月,ECMAScript 6草案發布。然後是12個月的討論期,聽取各方反饋。
  • 2015年6月17日,ECMAScript 6發布正式版本,即ECMAScript 2015
  • ECMA的第39號技術專家委員會(Technical Committee 39,簡稱TC39)負責制訂ECMAScript標準,成員包括Microsoft、Mozilla、Google等大公司。TC39的總體考慮是,ES5與ES3基本保持兼容,較大的語法修正和新功能加入,將由JavaScript.next完成。

JavaScript快速入門-簡介