JavaScript: Die Features für ECMAScript 2020 stehen fest

Das zuständige Komitee hat das Feature-Set für ECMAScript 2020 festgelegt. Die vorgeschlagenen Proposals sollen noch im Juni 2020 freigegeben werden.

In Pocket speichern vorlesen Druckansicht 8 Kommentare lesen
JavaScript: Die Features für ECMAScript 2020 stehen fest

(Bild: nattaphol phromdecha/Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Lisa Messerli
  • Madeleine Domogalla

Das Technical Committee 39 (TC39) der Standardisierungsbehörde ECMA International hat die Features für den diesjährigen ECMAScript-Sprachstandard festgelegt. Das ECMA-Standardkomitee soll das Feature-Set im Juni dieses Jahres prüfen und genehmigen. Seit 2015 erscheinen die ECMAScript-Standards jährlich, und zwar immer im Juni. Derzeit hat der Standard Canditate-Status.

Die technische Arbeitsgruppe schlägt die Einführung der matchAll-Methode in ES2020 vor, die an String gekoppelt ist. Damit soll ein Iterator für alle Match-Objekte erstellt werden, die durch einen globalen regulären Ausdruck erzeugt wurden.

Neu ist auch die import()-Methode. Entwickler erhalten damit die Möglichkeit, ein dynamisch erstelltes Modul wie moduleSpecifier = dir + 'my-math.mjs' asynchron, mit oder ohne Bedingung, zu jeder Stelle im Code einzufügen.

Das Standardkomitee muss auch genehmigen, ob ES2020 den primitiven Datentyp BigInt einführen darf. Diese Methode betrifft die Arbeit mit Langzahl-Datentypen (arbitrary-precision Integers). BigInt wird durch das Anhängen von n am Ende eines Integers (10n) oder durch den Aufruf der Funktion BigInt() erstellt. Mit der Einführung des neuen, primitiven Datentyps BigInt wird ein größerer Zahlenraum zugänglich gemacht. Er ermöglicht, Ganzzahlen über 253 -1 abzubilden, was bisher mit dem bestehenden Number-Typ die obere Grenze dargestellt hat.

const biggestInt = BigInt(
Number.MAX_SAFE_INTEGER + 1);

Mit dem neuen Konstruktor lässt sich der vergrößerte Zahlenraum nutzen. Wird das Feature vor dem offiziellen Release verwendet, sollte man vorab prüfen, ob der gewünschte Zielbrowser den Typen bereits unterstützt. Eine verkürzte Schreibweise zum Erstellen von BigInt-Werten wird bald mit der Kennzeichnung n möglich sein. Mit dem neuen Datentyp kann man wie gewohnt rechnen.

const bigIntAddition = biggestInt + BigInt(10);
const typeError = biggestInt - 10;

Mit Promise.allSettled() werden die Methoden Promise.all() und Promise.race() aus ES2015 vervollständigt. Diese Neuerung wurde für die Fälle vorgeschlagen, in denen alle Promises unabhängig vom Ergebnis (erfüllt oder nicht erfüllt) sind. Bisher sorgte die Ablehnung eines ersten Promise für die Zurückweisung des Gesamten, sodass ein zweites Promise nicht mehr erfüllt werden konnte. Promise.allSettled() soll zukünftig Fälle abdecken, in denen Teilergebnisse relevant sind.

Ein weiterer Vorschlag bietet Entwicklern die Möglichkeit, mit dem Keyword globalThis portablen ECMAScript-Code schreiben. Dadurch lässt sich auf das globale Objekt zugreifen. Das Benutzen von window, self und global jeweils in einer Browser-, Worker- oder Node.js-Umgebung wird dadurch hinfällig.

Eine Vielzahl der neuen Funktionen wird bereits von bekannten Browsern unterstützt und kann mithilfe des JavaScript-Parsers Babel umgesetzt werden. Nähere Informationen zu den genannten und weiteren Neuerungen finden sich in den entsprechenden auf GitHub abgelegten Dokumenten. (mdo)