JavaScript背景簡介
大(da)概在(zai)(zai)1992年,一(yi)家稱(cheng)作Nombas的(de)(de)(de)公司開(kai)始開(kai)發一(yi)種叫做C減(jian)減(jian)(C-minus-minus,簡(jian)稱(cheng)Cmm)的(de)(de)(de)嵌入式腳本語言(yan)(yan)。Cmm背后的(de)(de)(de)理念(nian)很簡(jian)單:一(yi)個(ge)(ge)足夠強大(da)可以(yi)(yi)替(ti)代(dai)宏操(cao)作(macro)的(de)(de)(de)腳本語言(yan)(yan),同時保持與C(和C++)足夠的(de)(de)(de)相似(si)性(xing),以(yi)(yi)便開(kai)發人員(yuan)能(neng)很快學會(hui)。這個(ge)(ge)腳本語言(yan)(yan)捆綁在(zai)(zai)一(yi)個(ge)(ge)叫做CEnvi的(de)(de)(de)共享(xiang)軟(ruan)件(jian)產品中,它(ta)首次向開(kai)發人員(yuan)展示了(le)這種語言(yan)(yan)的(de)(de)(de)威力。Nombas最終把(ba)Cmm的(de)(de)(de)名字(zi)改成了(le)ScriptEase,原因是后面的(de)(de)(de)部分(mm)聽起來過于“消極”,同時字(zi)母C“令(ling)人害(hai)怕”。現在(zai)(zai)ScriptEase已經成為了(le)Nombas產品背后的(de)(de)(de)主要驅動力。
當Netscape Navigator嶄露(lu)頭角時(shi),Nombas開(kai)發(fa)了一個(ge)可以嵌入(ru)網頁中(zhong)的CEnvi的版本。這些(xie)早期(qi)的試(shi)驗稱(cheng)為Espresso Page(濃咖啡般(ban)的頁面),它們(men)代表(biao)了第一個(ge)在萬(wan)維網上使(shi)用的客(ke)戶端(duan)腳本語(yu)言。而Nombas絲毫(hao)沒有料(liao)到它的理念(nian)將會(hui)成(cheng)為因特網的一塊重要基石。
當網(wang)上(shang)沖浪越來(lai)越流行(xing)時(shi)(shi),對(dui)于開發客(ke)戶端腳本的需求也(ye)逐漸增大。此時(shi)(shi),大部分(fen)因(yin)特網(wang)用戶還僅僅通過 28.8kbit/s的調制解調器來(lai)連(lian)接到網(wang)絡,即便這時(shi)(shi)網(wang)頁(ye)已經不斷地變得更大和(he)更復雜。而更加加劇用戶痛 苦的是,僅僅為了簡單的表(biao)單有效性驗證,就要與服務器端進行(xing)多(duo)次的往返交互。設想一下,用戶(hu)填(tian)完一 個表單(dan),點擊提交按(an)鈕,等待了30秒鐘的(de)處理后,看到的(de)卻是一條告訴你忘(wang)記填(tian)寫一個必(bi)要的(de)字段。
那(nei)時(shi) 正(zheng)處(chu)于技(ji)術(shu)革(ge)新最(zui)前(qian)沿(yan)的(de)(de)(de)Netscape,開(kai)始認(ren)真考慮一(yi)種開(kai)發(fa)(fa)客戶端腳本(ben)語(yu)言來(lai)解決簡單的(de)(de)(de)處(chu)理問題。 當時(shi)工作于Netscape的(de)(de)(de)Brendan Eich,開(kai)始著手為即將在1995年發(fa)(fa)行(xing)的(de)(de)(de)Netscape Navigator 2.0開(kai)發(fa)(fa)一(yi)個 稱之為LiveScript的(de)(de)(de)腳本(ben)語(yu)言,當時(shi)的(de)(de)(de)目的(de)(de)(de)是同(tong)時(shi)在瀏覽器和服(fu)務器(本(ben)來(lai)要叫(jiao)它(ta)(ta)LiveWire的(de)(de)(de))端使用它(ta)(ta) 。Netscape與Sun公司聯手及時完成LiveScript實現。就在Netscape Navigator 2.0即將正式(shi)發布前, Netscape將其更(geng)名為JavaScript,目的是為了利用Java這個(ge)因特網時髦詞匯。
Netspace的(de)賭注最終(zhong)得到回報,JavaScript從此變成(cheng)了因特網(wang)的(de)(de)必(bi)備(bei)組件(jian)。 因為(wei)JavaScript 1.0如此成(cheng)功,Netscape在Netscape Navigator 3.0中(zhong)發(fa)布了1.1版(ban)。恰(qia)巧那個(ge)時(shi)候,微 軟決(jue)定(ding)進軍瀏(liu)覽(lan)(lan)器,發(fa)布了IE 3.0 并搭載(zai)了一(yi)(yi)個(ge)JavaScript的(de)(de)克隆版(ban),叫做JScript(這樣命(ming)名是(shi)為(wei)了避 免與Netscape潛在的(de)(de)許可糾紛)。微軟步入(ru)Web瀏(liu)覽(lan)(lan)器領域的(de)(de)這重要一(yi)(yi)步雖然令(ling)其(qi)聲名狼藉,但也成(cheng)為(wei) JavaScript語(yu)言發(fa)展過程(cheng)中(zhong)的(de)(de)重要一(yi)(yi)步。
在微軟進(jin)入(ru)后,有3種不(bu)同(tong)的JavaScript版本同(tong)時(shi)存在:Netscape Navigator 3.0中的Java- Script、IE 中的JScript以(yi)及CEnvi中的ScriptEase。與C和其他編程語言不(bu)同(tong)的是,JavaScript并(bing)沒有一個(ge)標準來(lai)統 一其語法或特性,而這(zhe)3種不(bu)同(tong)的版本恰(qia)恰(qia)突出了這(zhe)個(ge)問題。隨著業界擔心的增加,這(zhe)個(ge)語言標準化顯然 已經勢(shi)在必(bi)行(xing)。
1997年,JavaScript 1.1作為一(yi)個(ge)草(cao)案(an)提交給歐洲計算機制造商協(xie)會(hui)(ECMA)。第39技術委(wei)員會(hui)(TC39) 被(bei)委(wei)派來(lai)“標準化一(yi)個(ge)通用、跨(kua)平臺(tai)、中立(li)于廠商的腳本(ben)語言(yan)的語法(fa)和語義”。由來(lai)自Netscape、Sun、微(wei)軟、Borland和其他一(yi)些對腳本(ben)編程 感興趣的公司的程序員組成(cheng)的TC39錘煉出了ECMA-262,該標準定義了叫做(zuo)ECMAScript的全新(xin)腳本(ben)語言(yan)。
在接下來的幾年里,國際標(biao)準化組織及(ji)國際電工委員會(ISO/IEC)也采納ECMAScript作(zuo)為標(biao)準 (ISO/IEC-16262)。從此(ci),Web瀏覽器就(jiu)開(kai)始努力(li)(雖然有著不(bu)同程(cheng)度的成功和失敗)將ECMAScript作(zuo)為 JavaScript實現(xian)的基礎。
