在 Web 日益流行的同時,人們對客戶端腳本語言的需求也越來越強烈。那個時候,絕大多數因特網用戶都使用速度僅為 28.8kbit/s 的“貓”(調制解調器)上網,但網頁的大小和復雜性卻不斷增加。為完成簡單的表單驗證而頻繁地與服務器交換數據只會加重用戶的負擔。想象一下:用戶填寫完一個表單,單擊“提交”按鈕,然后等待 30 秒鐘,最終服務器返回消息說有一個必填字段沒有填好……當時走在技術革新最前沿的 Netscape 公司,決定著手開發一種客戶端語言,用來處理這種簡單的驗證。
當時就職于 Netscape 公司的布蘭登·艾奇(Brendan Eich),開始著手為計劃于 1995 年 2 月發布的Netscape Navigator 2 開發一種名為 LiveScript 的腳本語言——該語言將同時在瀏覽器和服務器中使用(它在服務器上的名字叫 LiveWire)。為了趕在發布日期前完成 LiveScript 的開發, Netscape 與 Sun 公司建立了一個開發聯盟。在 Netscape Navigator 2 正式發布前夕,Netscape 為了搭上媒體熱炒 Java 的順風車,臨時把 LiveScript 改名為 JavaScript。
由于 JavaScript 1.0 獲得了巨大成功,Netscape 隨即在 Netscape Navigator 3 中又發布了 JavaScript 1.1。Web 雖然羽翼未豐,但用戶關注度卻屢創新高。在這樣的背景下, Netscape 把自己定位為市場領袖型公司。與此同時,微軟決定向與 Navigator 競爭的自家產品 Internet Explorer 瀏覽器投入更多資源。 NetscapeNavigator 3 發布后不久,微軟就在其 Internet Explorer 3 中加入了名為 JScript 的 JavaScript 實現(命名為JScript 是為了避開與 Netscape 有關的授權問題)。以現在的眼光來看,微軟 1996 年 8 月為進入 Web 瀏覽器領域而實施的這個重大舉措,是導致 Netscape 日后蒙羞的一個標志性事件。然而,這個重大舉措同時也標志著 JavaScript 作為一門語言,其開發向前邁進了一大步。
微軟推出其 JavaScript 實現意味著有了兩個不同的 JavaScript 版本: Netscape Navigator 中的JavaScript、 Internet Explorer 中的 JScript。與 C 及其他編程語言不同,當時還沒有標準規定 JavaScript 的語法和特性,兩個不同版本并存的局面已經完全暴露了這個問題。隨著業界擔心的日益加劇, JavaScript的標準化問題被提上了議事日程。
1997 年,以 JavaScript 1.1 為藍本的建議被提交給了歐洲計算機制造商協會(ECMA, EuropeanComputer Manufacturers Association) 。該協會指定 39 號技術委員會(TC39, Technical Committee #39)負 責 “ 標 準 化 一 種 通 用 、 跨 平 臺 、 供 應 商 中 立 的 腳 本 語 言 的 語 法 和 語 義 ” (http://www.ecmainternational.org/memento/TC39.htm)。 TC39 由來自 Netscape、 Sun、微軟、 Borland 及其他關注腳本語言發展的公司的程序員組成,他們經過數月的努力完成了 ECMA-262——定義一種名為 ECMAScript(發音為“ ek-ma-script”)的新腳本語言的標準。
第二年, ISO/IEC(International Organization for Standardization and International Electrotechnical Commission,國標標準化組織和國際電工委員會)也采用了 ECMAScript 作為標準(即 ISO/IEC-16262)。自此以后,瀏覽器開發商就開始致力于將 ECMAScript 作為各自 JavaScript 實現的基礎,也在不同程度上取得了成功。