Neuer JavaScript-Standard genehmigt ECMAScript 2024 im Detail

Von Filipe Pereira Martins und CTO und CISO Anna Kobylinska 3 min Lesedauer

Die ECMA International hat die jüngste Version des JavaScript-Standards, ECMAScript 2024, offiziell genehmigt. Diese Version bringt eine Reihe bemerkenswerter Verbesserungen und neuer Funktionen mit, die wir im Folgenden im Detail vorstellen.

Die Weltzentrale von Ecma International im schweizerischen Genf.(Bild:  ECMA International)
Die Weltzentrale von Ecma International im schweizerischen Genf.
(Bild: ECMA International)

Eine der wichtigsten Neuerungen in ECMAScript 2024 ist die Einführung des sogenannten Pattern Matching. Diese Funktion ermöglicht es Entwicklerinnen und Entwicklern, komplexe Datenstrukturen auf eine prägnante und lesbare Weise zu dekonstruieren, was den Code weniger fehleranfällig und leichter wartbar macht.

Ein weiteres Highlight ist die Top-Level-Await-Funktion, die jetzt fest im Standard verankert ist. Sie erlaubt es Entwicklern, asynchrone Operationen direkt auf der obersten Ebene von Modulen ohne zusätzliche Funktionen zu nutzen. Dank dieser Vereinfachung gestaltet sich der Umgang mit asynchronem Code deutlich intuitiver.

ECMAScript 2024 bringt mehrere weitere spannende Neuerungen, darunter Array Grouping, erweiterte String-Methoden, neue Symbole, optimierte Iteratoren sowie neue Methoden und Funktionen für schwache Referenzen (die sogenannten WeakRefs).

Neue Methoden wie Array.prototype.group und Array.prototype.groupToMap erlauben das Gruppieren von Array-Elementen nach einem bestimmten Kriterium, um die Organisation und Analyse großer Datenmengen zu erleichtern. Eine Liste von Objekten kann man nach einem gemeinsamen Attribut wie „Kategorie“ oder „Typ“ etwa wie folgt gruppieren:

const artikel = [
  { typ: 'Obst', name: 'Apfel' },
 { typ: 'Gemüse', name: 'Karotte' },
 { typ: 'Obst', name: 'Banane' }
];
const gruppierteArtikel = artikel.group(artikel => artikel.typ);
console.log(gruppierteArtikel);
// Ausgabe: { Obst: [{ typ: 'Obst', name: 'Apfel' }, { typ: 'Obst', name: 'Banane' }], Gemüse: [{ typ: 'Gemüse', name: 'Karotte' }] }

Mit String.prototype.isWellFormed und String.prototype.toWellFormed können Entwickler sicherstellen, dass Strings korrekt formatiert und Unicode-konform sind. Diese Methoden verbessern die Handhabung von Text und gewährleisten die Datenintegrität, indem sie häufige Probleme bei der Zeichenkodierung verhindern, zum Beispiel:

const malformedString = "\uD800";
console.log(malformedString.isWellFormed()); // false
const wellFormedString = malformedString.toWellFormed();
console.log(wellFormedString.isWellFormed()); // true

Neue Symbole wie Symbol.metadata bieten zusätzliche Möglichkeiten zur Verwaltung von Metadaten in JavaScript-Objekten. Dies erleichtert den Umgang mit komplexen Datenmodellen und fördert eine bessere Organisation des Codes, indem Objekte zusätzliche Informationen erfassen können, zum Beispiel:

const metadata = Symbol.metadata;
class Beispiel {
 [metadata] = { description: "Das ist ein Beispiel für eine Klasse" };
}
console.log(new Beispiel()[metadata]); // { description: "Das ist ein Beispiel für eine Klasse" }

Verbesserte Iteratoren-Methoden wie Iterator.prototype.toArray und AsyncIterator.prototype.toArray erleichtern das Umwandeln von Iteratoren in Arrays. Der Umgang mit iterierbaren Objekten gestaltet sich dadurch deutlich effizienter. Zum Beispiel so:

async function* asyncGenerator() {
  yield 1;
  yield 2;
  yield 3;
}
asyncGenerator().toArray().then(array => console.log(array)); // [1, 2, 3]

Mit neuen Methoden und Funktionen für WeakRefs (schwache Referenzen) lassen sich Speicherlecks vorbeugen und große Datenstrukturen einfacher in den Griff bekommen. Neue Methoden bieten eine feinere Kontrolle über die Speicherverwaltung und die Lebensdauer von Objekten:

let objekt = { name: "beispiel" };
let schwacheRef = new WeakRef(objekt);
objekt = null;
// `schwacheRef.deref()` gibt undefined zurück, wenn das Objekt vom Garbage Collector entfernt wurde
console.log(schwacheRef.deref()); // { name: "beispiel" }

Diese Erweiterungen verbessern die Speicherverwaltung von JavaScript-Anwendungen und können ihre Leistung auf ein neues Niveau heben.

Verbesserte Performance und Sicherheit

ES2024 bringt auch eine Reihe von Performance-Verbesserungen mit sich, die die Ausführungszeiten von JavaScript-Anwendungen verkürzen und die Reaktionsfähigkeit erhöhen. Dazu gehören optimierte Algorithmen für die Speicherverwaltung und die Einführung neuer, effizienter Datenstrukturen.

Auf der Sicherheitsseite bietet die neue Version verbesserte Mechanismen zur Isolierung und Verwaltung von Modulen, was das Risiko von Sicherheitslücken und Angriffen reduzieren soll. In einer Zeit, in der Webanwendungen immer häufiger Ziel von Cyberangriffen sind, stellen diese Features eine willkommene Verbesserung dar.

Rückblick und Ausblick

Diese neuen Features und Verbesserungen machen ECMAScript 2024 zu einer der umfassendsten Updates der letzten Jahre. Seit seiner Einführung im Jahr 1995 hat sich JavaScript stetig weiterentwickelt und ist heute die dominierende Skriptsprache im Web. Mit der Genehmigung von ECMAScript 2024 setzt die ECMA International einen weiteren Meilenstein in der kontinuierlichen Weiterentwicklung dieser vielseitigen und beliebten Web-Sprache. Es bleibt abzuwarten, inwiefern die neuen Funktionen von ES2024 auf Zustimmung der Entwicklergemeinde stoßen und inwiefern sie in künftige Web-Anwendungen einfließen.

(ID:50089241)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu RZ- und Server-Technik

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung