第 5 章 標準化:ECMAScript
目錄
購買書籍
(廣告,請勿封鎖)

第 5 章 標準化:ECMAScript

JavaScript 推出後,Microsoft 在 Internet Explorer 3.0(1996 年 8 月)中實作了相同的語言,並以不同的名稱 JScript 命名。為了部分遏制 Microsoft,Netscape 決定標準化 JavaScript,並要求標準組織 Ecma International 主持標準。ECMA-262 規範的制定工作於 1996 年 11 月開始。由於 Sun(現為 Oracle)擁有 JavaScript 一詞的商標,因此它無法成為要標準化的語言的正式名稱。因此,選擇了 ECMAScript,它源自 JavaScriptEcma。不過,這個名稱僅用於指稱語言版本(其中一個指稱規範)。大家仍然稱呼該語言為 JavaScript

ECMA-262 由 Ecma 的 技術委員會 39(TC39)管理和演進。其成員包括 Microsoft、Mozilla 和 Google 等公司,這些公司指定員工參與委員會工作;範例包括 Brendan Eich、Allen Wirfs-Brock(ECMA-262 編輯)和 David Herman。為了推動 ECMAScript 的設計,TC39 在開放管道(例如郵件清單 es-discuss)上舉辦討論,並定期舉行會議。這些會議由 TC39 成員和受邀專家參加。在 2013 年初,與會人數介於 15 到 25 人之間。

以下是 ECMAScript 版本(或 ECMA-262 的 版本)及其 主要功能 的清單:

ECMAScript 1(1997 年 6 月)
第一版
ECMAScript 2(1998 年 8 月)
編輯變更,以使 ECMA-262 與標準 ISO/IEC 16262 保持一致
ECMAScript 3(1999 年 12 月)
do-while、正規表示式、新的字串方法(concatmatchreplaceslicesplit 搭配正規表示式等)、例外處理等
ECMAScript 4(2008 年 7 月放棄)

ECMAScript 4 是作為 JavaScript 的下一個版本開發的,其原型是用 ML 編寫的。但是,TC39 無法就其功能集達成共識。為了避免僵局,委員會於 2008 年 7 月底開會,並達成協議,總結為 四點

  1. 開發 ECMAScript 3 的增量更新(成為 ECMAScript 5)。
  2. 開發一個新的主要版本,其功能少於 ECMAScript 4,但遠多於 ECMAScript 3 的增量更新。新版本的代號為 Harmony,因為它是構思它的會議的性質。Harmony 將分拆為 ECMAScript 6 和 ECMAScript 7。
  3. 從 ECMAScript 4 中刪除的功能包括套件、命名空間和早期繫結。
  4. 其他想法將與 TC39 的所有成員達成共識後開發。

因此,ECMAScript 4 開發人員同意讓 Harmony 比 ECMAScript 4 不那麼激進,而 TC39 的其他成員則同意持續推進。

ECMAScript 5(2009 年 12 月)
新增嚴格模式、getter 和 setter、新的陣列方法、支援 JSON 等(請參閱 第 25 章
ECMAScript 5.1(2011 年 6 月)
編輯變更,使 ECMA-262 與國際標準 ISO/IEC 16262:2011 的第三版保持一致
ECMAScript 6
目前 正在開發中,預計在 2014 年底前批准。大多數引擎在批准時可能會支援最重要的 ECMAScript 6 功能。完全支援可能需要更長的時間。

達成共識並建立標準並不容易,但感謝上述各方的合作,JavaScript 是一種真正的開放語言,由多家廠商實作,且具有極高的相容性。這種相容性是由非常詳細但具體的規格所實現。例如,規格經常使用偽程式碼,並由測試套件 test262 補充,用於檢查 ECMAScript 實作是否符合規定。有趣的是,ECMAScript 並非由萬維網聯盟 (W3C) 管理。在 JavaScript 和 HTML5 重疊的地方,TC39 和 W3C 會進行合作。

下一篇:6. JavaScript 歷史里程碑