JavaScript背景簡介
大概在1992年,一家稱作Nombas的公司開始開發(fā)一種叫做C減減(C-minus-minus,簡稱Cmm)的嵌入式腳本語言。Cmm背后的理念很簡單:一個足夠強大可以替代宏操作(macro)的腳本語言,同時保持與C(和C++)足夠的相似性,以便開發(fā)人員能很快學(xué)會。這個腳本語言捆綁在一個叫做CEnvi的共享軟件產(chǎn)品中,它首次向開發(fā)人員展示了這種語言的威力。Nombas最終把Cmm的名字改成了ScriptEase,原因是后面的部分(mm)聽起來過于“消極”,同時字母C“令人害怕”,F(xiàn)在ScriptEase已經(jīng)成為了Nombas產(chǎn)品背后的主要驅(qū)動力。
當(dāng)Netscape Navigator嶄露頭角時,Nombas開發(fā)了一個可以嵌入網(wǎng)頁中的CEnvi的版本。這些早期的試驗稱為Espresso Page(濃咖啡般的頁面),它們代表了第一個在萬維網(wǎng)上使用的客戶端腳本語言。而Nombas絲毫沒有料到它的理念將會成為因特網(wǎng)的一塊重要基石。
當(dāng)網(wǎng)上沖浪越來越流行時,對于開發(fā)客戶端腳本的需求也逐漸增大。此時,大部分因特網(wǎng)用戶還僅僅通過 28.8kbit/s的調(diào)制解調(diào)器來連接到網(wǎng)絡(luò),即便這時網(wǎng)頁已經(jīng)不斷地變得更大和更復(fù)雜。而更加加劇用戶痛 苦的是,僅僅為了簡單的表單有效性驗證,就要與服務(wù)器端進行多次的往返交互。設(shè)想一下,用戶填完一 個表單,點擊提交按鈕,等待了30秒鐘的處理后,看到的卻是一條告訴你忘記填寫一個必要的字段。
那時 正處于技術(shù)革新最前沿的Netscape,開始認真考慮一種開發(fā)客戶端腳本語言來解決簡單的處理問題。 當(dāng)時工作于Netscape的Brendan Eich,開始著手為即將在1995年發(fā)行的Netscape Navigator 2.0開發(fā)一個 稱之為LiveScript的腳本語言,當(dāng)時的目的是同時在瀏覽器和服務(wù)器(本來要叫它LiveWire的)端使用它 。Netscape與Sun公司聯(lián)手及時完成LiveScript實現(xiàn)。就在Netscape Navigator 2.0即將正式發(fā)布前, Netscape將其更名為JavaScript,目的是為了利用Java這個因特網(wǎng)時髦詞匯。
Netspace的賭注最終得到回報,JavaScript從此變成了因特網(wǎng)的必備組件。 因為JavaScript 1.0如此成功,Netscape在Netscape Navigator 3.0中發(fā)布了1.1版。恰巧那個時候,微 軟決定進軍瀏覽器,發(fā)布了IE 3.0 并搭載了一個JavaScript的克隆版,叫做JScript(這樣命名是為了避 免與Netscape潛在的許可糾紛)。微軟步入Web瀏覽器領(lǐng)域的這重要一步雖然令其聲名狼藉,但也成為 JavaScript語言發(fā)展過程中的重要一步。
在微軟進入后,有3種不同的JavaScript版本同時存在:Netscape Navigator 3.0中的Java- Script、IE 中的JScript以及CEnvi中的ScriptEase。與C和其他編程語言不同的是,JavaScript并沒有一個標(biāo)準(zhǔn)來統(tǒng) 一其語法或特性,而這3種不同的版本恰恰突出了這個問題。隨著業(yè)界擔(dān)心的增加,這個語言標(biāo)準(zhǔn)化顯然 已經(jīng)勢在必行。
1997年,JavaScript 1.1作為一個草案提交給歐洲計算機制造商協(xié)會(ECMA)。第39技術(shù)委員會(TC39) 被委派來“標(biāo)準(zhǔn)化一個通用、跨平臺、中立于廠商的腳本語言的語法和語義”。由來自Netscape、Sun、微軟、Borland和其他一些對腳本編程 感興趣的公司的程序員組成的TC39錘煉出了ECMA-262,該標(biāo)準(zhǔn)定義了叫做ECMAScript的全新腳本語言。
在接下來的幾年里,國際標(biāo)準(zhǔn)化組織及國際電工委員會(ISO/IEC)也采納ECMAScript作為標(biāo)準(zhǔn) (ISO/IEC-16262)。從此,Web瀏覽器就開始努力(雖然有著不同程度的成功和失敗)將ECMAScript作為 JavaScript實現(xiàn)的基礎(chǔ)。