ECMAScript 5仕様書には、その範囲に関する以下の記述があります。
ECMAScript第5版(ECMA-262 第5版として公開)
- は、ブラウザの実装間で一般的になっている言語仕様の事実上の解釈を公式化し、
第3版の公開以降に登場した新機能のサポートを追加しています。そのような機能には、
- アクセサプロパティ、
- オブジェクトの反射的な作成と検査、
- プロパティ属性のプログラムによる制御、
- 追加の配列操作関数、
- 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メソッド(Arrayプロトタイプメソッドを参照)
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メソッド(Dateプロトタイプメソッドを参照)
Date.now()
Date.prototype.toISOString()
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()