Kapitel 25. Neu in ECMAScript 5
Inhaltsverzeichnis
Das Buch kaufen
(Werbung, bitte nicht blockieren.)

Kapitel 25. Neu in ECMAScript 5

Dieses Kapitel listet Funktionen auf, die nur in ECMAScript 5 verfügbar sind. Wenn Sie mit älteren JavaScript-Engines arbeiten müssen, sollten Sie diese Funktionen vermeiden oder einige davon über eine Bibliothek aktivieren (wie später beschrieben). Beachten Sie, dass dieses Buch normalerweise davon ausgeht, dass Sie mit modernen Engines arbeiten, die ECMAScript 5 vollständig unterstützen.

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.

Syntaktische Änderungen

ECMAScript 5 enthält die folgenden syntaktischen Änderungen:

Neue Funktionalität in der Standardbibliothek

ECMAScript 5 brachte mehrere Ergänzungen in die Standardbibliothek von JavaScript ein. Dieser Abschnitt listet sie nach Kategorien auf.

Metaprogrammierung

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()

Neue Methoden

Strings (siehe Kapitel 12. Strings)

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()

JSON

Unterstützung für JSON (siehe Kapitel 22. JSON)

Tipps für die Arbeit mit Legacy-Browsern

Die folgenden Ressourcen sind nützlich, wenn Sie mit Legacy-Browsern arbeiten müssen:

  • Eine Kompatibilitätstabelle von Juriy Zaytsev („kangax“) zeigt, wie viel von ECMAScript 5 von verschiedenen Versionen verschiedener Browser unterstützt wird.
  • es5-shim bringt die meisten (aber nicht alle) Funktionen von ECMAScript 5 in Browser, die nur ECMAScript 3 unterstützen.
Weiter: IV. Tipps, Werkzeuge und Bibliotheken