Die ECMAScript 5-Spezifikation enthält die folgende Beschreibung ihres Umfangs:
Die fünfte Ausgabe von ECMAScript (veröffentlicht als ECMA-262 5. Ausgabe)
- kodifiziert de-facto-Interpretationen der Sprachspezifikation, die unter Browser-Implementierungen üblich geworden sind und
fügt Unterstützung für neue Funktionen hinzu, die seit der Veröffentlichung der dritten Ausgabe aufgetaucht sind. Solche Funktionen umfassen
- Accessor-Eigenschaften,
- reflektierende Erstellung und Inspektion von Objekten,
- Programmsteuerung von Eigenschaftsattributen,
- zusätzliche Array-Manipulationsfunktionen,
- Unterstützung für das JSON-Objekt-Codierungsformat und
- einen Strict-Modus, der erweiterte Fehlerprüfung und Programmsicherheit bietet.
Die neuen Funktionen in ECMAScript 5 sind die folgenden:
'use strict';
> var obj = { get foo() { return 'abc' } };
> obj.foo
'abc'ECMAScript 5 enthält die folgenden syntaktischen Änderungen:
Sie können reservierte Wörter (wie new und function) nach dem Punktoperator und als ungequotete Eigenschaftsschlüssel in Objekt-Literalen verwenden:
> var obj = { new: 'abc' };
> obj.new
'abc'ECMAScript 5 brachte mehrere Ergänzungen in die Standardbibliothek von JavaScript ein. Dieser Abschnitt listet sie nach Kategorien auf.
Prototypen abrufen und festlegen (siehe Getting and Setting the Prototype)
Object.create()
Object.getPrototypeOf()
Verwaltung von Eigenschaftsattributen mittels Eigenschaftsdeskriptoren (siehe Property Descriptors)
Object.defineProperty()
Object.defineProperties()
Object.create()
Object.getOwnPropertyDescriptor()
Auflisten von Eigenschaften (siehe Iteration and Detection of Properties)
Object.keys()
Object.getOwnPropertyNames()
Objekte schützen (siehe Protecting Objects)
Object.preventExtensions()
Object.isExtensible()
Object.seal()
Object.isSealed()
Object.freeze()
Object.isFrozen()
Neue Function-Methode (siehe Function.prototype.bind(thisValue, arg1?, ..., argN?))
Function.prototype.bind()
Strings (siehe Kapitel 12. Strings)
String.prototype.trim()[...]Neue Array Methoden (siehe Array Prototype Methods)
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()
Neue Date Methoden (siehe Date Prototype Methods)
Date.now()
Date.prototype.toISOString()
Unterstützung für JSON (siehe Kapitel 22. JSON)
JSON.parse() (siehe JSON.parse(text, reviver?))JSON.stringify() (siehe JSON.stringify(value, replacer?, space?))Einige eingebaute Objekte haben spezielle toJSON()-Methoden
Boolean.prototype.toJSON()
Number.prototype.toJSON()
String.prototype.toJSON()
Date.prototype.toJSON()
Die folgenden Ressourcen sind nützlich, wenn Sie mit Legacy-Browsern arbeiten müssen: