JavaScript的追根溯源


Netscape發(fā)明了JavaScript

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

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

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

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

就在Netscape Navigator 2.0即將正式發(fā)布前,Netscape將其更名為JavaScript,目的是為了利用Java這個因特網(wǎng)時髦詞匯。Netscape的賭注最終得到回報,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中的JavaScript、IE中的JScript以及CEnvi中的ScriptEase。與C和其他編程語言不同的是,JavaScript并沒有一個標準來統(tǒng)一其語法或特性,而這3中不同的版本恰恰突出了這個問題。隨著業(yè)界擔心的增加,這個語言的標準化顯然已經(jīng)勢在必行。

標準化的開始

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

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

Web瀏覽器中的ECMAScript的演變

含有JavaScript 1.1的Netscape Navigator 3.0在1996年發(fā)布。然后,JavaScript 1.1規(guī)范被作為一個新標準的草案被提交給EMCA。有了JavaScript轟動性的流行,Netscape十分高興地開始開發(fā)1.2版。但有一個問題,ECMA并未接受Netscape的草案。在Netscape Navigator 3.0發(fā)布后不久,微軟就發(fā)布了IE 3.0。該版本的IE含有JScript 1.0(微軟自己的JavaScript實現(xiàn)的名稱),原本計劃可以與JavaScript 1.1相提并論。然后,由于文檔不全以及一些不當?shù)闹貜吞匦?,JScript1.0遠遠沒有達到JavaScript 1.1的水平。

ECMA-262第一版定稿之前,發(fā)布含有JavaScript 1.2的Netscape Navigator 4.0是在1997年,在那年晚些時候,ECMA-262標準被接受并標準化。因此,JavaScript 1.2并不和ECMAScript的第一版兼容,雖然ECMAScript應該基于JavaScript 1.1。

JScript的下一步是IE 4.0中加入的JScript 3.0(2.0版是隨IIS 3.0一起發(fā)布的,但并未包含在瀏覽器中)。微軟大力宣傳JScript 3.0是世界上第一個真正符合ECMA標準的腳本語言。而那時,ECMA-262還沒有最終定稿,所以JScript 3.0也遭受了和JavaScript 1.2同樣的命運-它還是沒能符合最終的ECMAScript標準。

Netscape選擇在Netscape Navigator 4.06中升級它的JavaScript實現(xiàn)。JavaScript 1.3使Netscape終于完全符合了ECMAScript第一版。Netscape加入了對Unicode標準的支持,并讓所有的對象保留了在JavaScript 1.2中引入的新特性的同時實現(xiàn)了平臺獨立。

當Netscape將它的源代碼作為Mozilla項目公布于眾時,本來計劃JavaScript 1.4將會嵌入到Netscape Navigator 5.0中。然而,一個冒進的決定-要完全從頭重新設計Netscape的代碼,破壞了這個工作。JavaScript 1.4僅僅作為一個Netscape Enterprise Server的服務器端腳本語言發(fā)布,以后也沒有被放入瀏覽器中。

如今,所有主流的Web瀏覽器都遵守ECMA-262第五版,同時ES6\ES7也已經(jīng)被廣泛的使用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • title: JavaScript的歷史layout: pagecategory: introductiondat...
    ichengzi閱讀 4,514評論 0 23
  • 1.1.JavaScript由來 Netscape發(fā)明了JavaScript JavaScript由Netscap...
    Michael_林閱讀 382評論 0 1
  • 今天普高和職高的通知書都來了,孩子們向高彩烈的來拿自己的通知書和畢業(yè)證等材料。拿了一中通知書的要做好學習的準...
    蓋金輝教育碎思閱讀 415評論 0 3
  • 一旦心自由了,便停不下來。 心被打開了個口,整個人像破殼的鳥兒,想即刻沖向自由廣闊的天空,無拘無束應該是最令鳥神往的。
    溫暖dream閱讀 199評論 0 1
  • 哈兒,不要被這個標題嚇到。我已經(jīng)沒事了,等幾天再去復查就好了。 這幾天就只有苦了我的胃了。 有一天,我不在了你會來...
    xiao錢錢閱讀 320評論 0 0

友情鏈接更多精彩內(nèi)容