大概在1992年,一家稱做Nombas的公司開始開發一種叫作C--(C-minus-minus,簡稱Cmm)的嵌入式腳本語言。 Cmm背後的理念很簡單:一個足夠強大能夠替代宏操做(macro)的腳本語言,同時保持與C(和C++)中夠的類似性,以便開發人員能很快學會。 這個腳本語言捆綁在一個叫作CEnvi的共享軟件產品中,它首次向開發人員展現了這種語言的威力。 Nombas最終把Cmm的名字改爲了ScripEase。緣由是後面的部分(mm)聽起來過於「消極」,同時字母C「使人懼怕」。 如今ScriptEase已經成爲了Nombas產品背後的主要驅動力。 當Netscape Navigator嶄露頭角時,Nombas開發了個能夠嵌入網頁中的CEnvi的版本。 這些早期的試驗稱爲Espresso Page(濃咖啡般的頁面),它們表明了每一個在萬維網上使用的客戶端腳本語言。 而Nombas絲毫沒有料到它的理念將會成爲因特網的一塊重要基石。javascript
當網上衝浪愈來愈流行時,對於開發客戶端腳本的需求也逐漸增大。此時,大部分因特網用戶還僅僅經過28.8kbit/s的調制解調器來鏈接到網絡,即使這時網頁已經不斷地變得更大和更復雜。而更加加重用戶痛苦的是,僅僅爲了簡單的表單有效性驗證,就要與服務器端進行屢次的往返交互。設想一下,用戶填完一個表單,點擊提交按鈕,等待了30秒鐘的處理後,看到的倒是一條告訴你忘記填寫一個必要的字段。那時正處於技術革新最前沿的Netscape,開始認真考慮一種開發客戶端腳本語言來解決簡單的處理問題。java
當時工做於Netscape的Brendan Eich,開始着手爲即將在1995年發行的Netscape Navigator 2.0開發一個稱之爲LiveScript的腳本語言,當時的目的是同時在瀏覽器和服務器(原本要叫它LiveWire的)端使用它。Netscape與Sun公司聯手及時完成LiveScript實現。就在Netscape Navigator 2.0即將正式發佈前,Netscape將其改名爲JavaScript,目的是爲了利用Java這個因特網時髦詞彙。Netspace的賭注最終獲得回報,JavaScript今後變成了因特網的必備組件。程序員
由於JavaScript 1.0如此成功,Netscape在Netscape Navigator 3.0中發佈了1.1版。恰巧那個時候,微軟決定進軍瀏覽器,發佈了IE 3.0 並搭載了一個JavaScript的克隆版,叫作JScript(這樣命名是爲了不與Netscape潛在的許可糾紛)。微軟步入Web瀏覽器領域的這重要一步雖然令其聲名狼藉,但也成爲JavaScript語言發展過程當中的重要一步。編程
在微軟進入後,有3種不一樣的JavaScript版本同時存在:Netscape Navigator 3.0中的JavaScript、IE中的JScript以及CEnvi中的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實現的基礎。服務器
儘管ECMAScript是一個重要的標準,但它並非JavaScript惟一的部分,固然,也不是惟一被標準化的部分。實際上,一個完整的JavaScript實現是由如下3個不一樣部分組成的cookie
ECMAScript、DOM、BOM將是咱們以後課程的主要內容。網絡
儘管名字中有Java,可是JavaScript和Java幾乎沒有什麼共同點。Java是一種全功能的編程語言,是由Sun公司開發和推廣的。Java是C和C++編程語言以後的又一種主流語言,程序員可使用它建立完整的應用程序和控制消費電子設備。與其餘語言不一樣,Java宣稱具備跨平臺兼容性;也就是說,程序員應該可以編寫出能夠在全部種類的機器上運行的Java程序,不管機器運行的是Windows、Mac OS X仍是任何風格的UNIX。但實際上,Java不老是可以實現這個夢想,由於Sun和微軟公司在這種語言的發展方向方面有很大的分歧。微軟公司首先試圖以本身的方式將Java集成到Windows中(Sun認爲,這種方式使Java在Windows上以一種方式工做,而在其餘機器上以另外一種方式工做,從而破壞了Java的跨平臺兼容性);隨後,微軟公司從Windows中徹底去除了Sun的Java,而建立了本身的類Java語言:C#。通過兩公司之間的一輪訴訟以後,Sun佔據了上風,如今能夠在Windows(或Linux)上安裝Sun的最新Java版本(http://www.java.com/getjava/)。Mac OS X操做系統在安裝時會附帶Java。編程語言
用JavaScript能夠作許多事情,使網頁更具交互性,給站點的用戶提供更好、更使人興奮的體驗。JavaScript使你能夠建立活躍的用戶界面,當用戶在頁面間導航時向他們提供反饋。例如,你可能在一些站點上見過在鼠標指針停留時突出顯示的按鈕。這是用JavaScript實現的,使用了一種稱爲翻轉器(rollover)的技術 可使用JavaScript確保用戶在表單中輸入有效的信息,這能夠節省你的業務時間和開支。若是表單須要進行計算,那麼能夠在用戶機器上的JavaScript中完成,而不須要任何服務器端處理。你應該知道一種區分程序的方式:在用戶機器上運行的程序稱爲客戶端(client-side)程序;在服務器上運行的程序(包括後面要討論的CGI)稱爲服務器端(server-side)程序。 可使用JavaScript根據用戶的操做即時建立定製的HTML頁面。假設你正在運行一個旅行指南站點,用戶點擊夏威夷做爲旅遊目的地。你能夠在一個新窗口中顯示最新的夏威夷旅遊指南。JavaScript能夠控制瀏覽器,因此你能夠打開新窗口、顯示警告框以及在瀏覽器窗口的狀態欄中顯示定製的消息。JavaScript有一套日期和時間特性,能夠生成時鐘、日曆和時間戳文檔。 JavaScript還能夠處理表單、設置cookie、即時構建HTML頁面以及建立基於Web的應用程序。
JavaScript是一種客戶端(client-side)語言;也就是說,設計它的目的是在用戶的機器上執行任務,而不是在服務器上。所以,JavaScript有一些固有的限制,這些限制主要出於安全緣由:
咱們的第一個腳本:最經典的HelloWorld程序!
<script type="text/javascript"> document.write("<h2>Hello,JavaScriptWorld!</h2>"); </script>
本篇及後續系列源自李炎恢老師