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