ECMAScript 5 規格包含其範圍的下列說明
ECMAScript 的第五版(以 ECMA-262 第 5 版發布)
- 編纂語言規格的實際詮釋,這些詮釋已在瀏覽器實作中變得常見,且
新增對自第三版發布以來出現的新功能的支援。此類功能包括
- 存取器屬性,
- 反射式建立和檢查物件,
- 屬性屬性的程式控制,
- 其他陣列操作函式,
- 支援 JSON 物件編碼格式,以及
- 提供增強錯誤檢查和程式安全性的嚴格模式。
ECMAScript 5 中包含的 新功能如下:
在檔案或函式中將 下列程式碼行放在最前面,會開啟所謂的 嚴格模式,這會透過禁止某些功能、執行更多檢查和擲回更多例外,讓 JavaScript 變成一種更簡潔的語言:
'use strict'
;
取得器和設定器讓您可以透過方法實作取得和設定屬性。例如,下列物件 obj
包含屬性 foo
的取得器:
> var obj = { get foo() { return 'abc' } }; > obj.foo 'abc'
ECMAScript 5 包含 下列語法變更:
您可以在點運算子之後和物件文字中未加引號的屬性金鑰中使用 保留字(例如 new
和 function
):
> var obj = { new: 'abc' }; > obj.new 'abc'
ECMAScript 5 為 JavaScript 的標準函式庫帶來許多 新增功能。本節依類別列出這些功能。
取得和設定原型(請參閱 取得和設定原型)
Object.create()
Object.getPrototypeOf()
管理屬性特徵 (透過屬性描述子,請參閱 屬性描述子)
Object.defineProperty()
Object.defineProperties()
Object.create()
Object.getOwnPropertyDescriptor()
列出屬性 (請參閱 屬性的反覆運算和偵測)
Object.keys()
Object.getOwnPropertyNames()
Object.preventExtensions()
Object.isExtensible()
Object.seal()
Object.isSealed()
Object.freeze()
Object.isFrozen()
新的 Function
方法(請參閱 Function.prototype.bind(thisValue, arg1?, ..., argN?))
Function.prototype.bind()
字串(請參閱 第 12 章 字串)
String.prototype.trim()
[...]
存取字元
Array.isArray()
Array.prototype.every()
Array.prototype.filter()
Array.prototype.forEach()
Array.prototype.indexOf()
Array.prototype.lastIndexOf()
Array.prototype.map()
Array.prototype.reduce()
Array.prototype.some()
Date.now()
Date.prototype.toISOString()
支援 JSON(請參閱 第 22 章 JSON)
JSON.parse()
(請參閱 JSON.parse(text, reviver?))
JSON.stringify()
(請參閱 JSON.stringify(value, replacer?, space?))
有些內建物件有特殊的 toJSON()
方法
Boolean.prototype.toJSON()
Number.prototype.toJSON()
String.prototype.toJSON()
Date.prototype.toJSON()