ECMAScript 2019: Das sind die neuen Features im JavaScript-Standard

ECMAScript 2019: Die Features stehen fest!
Keine Kommentare

Die neuen Features für ECMAScript 2019 stehen fest. Der neue JavaScript-Standard wird zwar erst im Sommer veröffentlicht, bereits jetzt ist aber klar, welche 8 neuen Features die Version standardisiert und welches Feature ein Update erhalten wird.

Neun neue und geänderte Features werden mit ECMAScript 2019 standardisiert. Der neue Standard wird im Sommer veröffentlicht werden. Bereits in dieser Woche hat das TC39 aber final festgelegt, welche Features aufgenommen werden. Vier davon standen schon seit einer Weile fest, vier wurden nun auf Stage 4 des TC39-Prozesses gesetzt und somit für fertig erklärt. Außerdem wird ein bereits im Standard vorhandenes Feature geändert. Insgesamt haben es damit neun neue und veränderte Features in ECMAScript 2019 geschafft, wie TC39-Mitglied Mathias Bynens auf Twitter mitteilt:


Bereits im Mai 2018 war festgelegt worden, dass das Proposal für optionale Catch-Bindings in ECMAScript 2019 standardisiert wird, ebenso wie die Änderung mancher Definitionen in ECMAScript, damit der Sprachkern ein Superset von JSON darstellt. Im November-Meeting des TC39 folgten zwei weitere Features: Symbol.prototype.description und eine Revision für Function.prototype.toString wurden auf Stufe 4 des TC39-Proposal-Prozesses gesetzt. Folgende vier Proposals hat das TC39 nun im Januar auf Stufe 4 gesetzt, also als fertig markiert:

  • Object.fromEntries
  • Well-formed JSON.stringify
  • String.prototype.{trimStart,trimEnd}
  • Array.prototype.{flat,flatMap}

Das umstrittenste Feature darunter dürfte Array.prototype.{flat,flatMap} sein. Die Bezeichnung flat wird nun standardisiert, nachdem zuerst flatten verwendet worden war, dies jedoch zu Problemen mit der Implementierung führte. Ein nicht ernst gemeinter Vorschlag, stattdessen smoosh zu verwenden, löste im vergangenen Jahr einen Aufschrei in der JavaScript-Welt aus. Auch wurde im November-Meeting des TC39 noch einmal über die Meldung eines Problems diskutiert, das mit der Stage-3-Implementierung von flat aufgetreten war. Insofern war bis zum Januar-Meeting unklar, inwiefern eine Implementierung in den Standard zu 2019 erfolgen kann. Das wurde nun bestätigt.

9 Features für ECMAScript 2019

Mit der statischen Methode Object.fromEntries, die ebenfalls auf Bynens Liste zu finden ist, kann eine Liste von Key-Value-Paaren in ein Objekt transformiert werden. Das Proposal führt folgendes Beispiel an:

obj = Object.fromEntries([['a', 0], ['b', 1]]); // { a: 0, b: 1 }

Das Proposal zu JSON.stringify bezieht sich auf die Ausgabe von Unicode-Strings, die künftig keine nicht in UTF-8 repräsentierten Zeichen mehr enthalten sollen. So soll die Ausgabe von fehlerhaften Unicode-Strings via JSON.stringify verhindert werden.

String.prototype.{trimStart,trimEnd} stellt eine Ergänzung zum bereits standardisierten String.prototype.trim dar. Laut Proposal-Text seien in allen großen Engines bereits auch trimLeft und trimRight implementiert worden, ohne dass eine Standardisierung dafür existiere. Standardisiert in ECMAScript 2019 wird nun trimStart und trimEnd, das dem Beispiel von padStart/padEnd folge. trimLeft/trimRight werden im entsprechenden GitHub-Repository zum Proposal als Aliasse genannt.

Array.prototype.sort jetzt stabil

Das letzte der neuen Features stellt die stabile Implementierung von Array.prototype.sort dar. Dabei handelt es sich nicht um ein neues Feature im Standard, sondern um eine Änderung der bestehenden Standardisierung. Weitere Informationen dazu können im Pull Request von Mathias Bynens gefunden werden.

Das TC39 ist ein technisches Komitee der Standardisierungsorganisation ECMAInternational. Zu den Mitgliedern des Komitees gehören zahlreiche Vertreter der großen Webtech-Konzerne. Im vergangenen Jahr gab npm bekannt, künftig auch im TC39 vertreten zu sein. Das TC39 tritt alle zwei Monate zusammen und entwickelt den JavaScript-Standard ECMAScript. Proposals durchlaufen dazu vier Stufen. Zur Standardisierung vorgeschlagene Sprachfunktionen werden auf Stufe 1 aufgenommen; auf Stufe 3 erfolgt die Implementierung in JavaScript-Engines. Proposals, die bis zum Januar-Meeting eines Jahres Stufe 4 erreichen, werden im selben Jahr in den Standard aufgenommen. Wie Bynens jedoch auf Twitter betont, sei für Entwickler jedoch vor allem die Implementierung in den Enginges relevant, nicht so sehr die Versionsnummer, zu der ein Feature in den Standard aufgenommen wird.

Einen Überblick über die für ECMAScript 2019 vorgesehenen Proposals gibt die Liste der fertigen Proposals des TC39 auf GitHub.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -