跳轉到

1998:ECMAScript 2#

事件#

1998年6月,ECMAScript 2(ECMA-262 第二版) 發佈,同時通過為 ISO/IEC 16262 國際標準。

為何重要#

  • 純編輯性修訂:ES2 沒有加入任何新語法,只是把 ES1 的內容與 ISO 標準文件格式對齊、修正編輯瑕疵。
  • 國際化:成為 ISO 標準意味著政府機構與企業可以在採購規範中要求 ECMAScript 相容性,語言的正式地位進一步鞏固。

為何值得記錄#

ES2 是語言發展史上「零功能年份」的罕見案例,說明1997–1999年間的主要工作是把標準制度化而非擴充——當務之急是鞏固標準地位,而非加功能。真正的語言進化發生在一年後的 ES3(見 1999-ECMAScript3正則表達式與例外處理)。

理論與實用原因#

  • 理論原因:ISO/IEC JTC 1 對標準文件有嚴格的格式與術語要求,ECMA 要成為 ISO 快速通道標準就必須重寫文件結構。
  • 實用原因:企業與政府採購需要 ISO 認證背書。

彌補了什麼缺陷#

彌補了「ECMA 標準不被國際組織承認」的制度性缺陷,沒有彌補任何語言缺陷——語言缺陷要等 ES3。

相關條目#

程式範例#

ES2 沒有新語法——以下是 ES1/ES2 時期標準程式碼的樣貌(與 ES3 相比可見其匱乏):

// 錯誤處理:只能回傳特殊值,沒有 try/catch(要等 ES3)
function divide(a, b) {
  if (b === 0) return null;      // 錯誤用 null 表示——呼叫端必須自己檢查
  return a / b;
}
var r = divide(1, 0);
if (r === null) { /* 呼叫端還記得檢查嗎? */ }

// 文字比對:沒有正則表達式(要等 ES3),只能手寫字串掃描
function isEmail(s) {
  var at = s.indexOf("@");
  return at > 0 && s.indexOf("@", at + 1) === -1 && s.indexOf(".") > at;
}

ES2 年份的價值正是這種「匱乏」的對照組——標準已制度化,但語言能力要等 ES3 才補齊。