Nur zwei Features schaffen es in die neue JavaScript-Version

ECMAScript 2016: das sind die neuen Features
Kommentare

Mit der Umbenennung des JavaScript-Standards EMCAScript von ES 6 zu ECMAScript 2015 im vergangenen Juni gab es vor allem auch eine große Neuerung: künftig sollen neue Sprachversionen einmal pro Jahr erscheinen und das entsprechende Jahr als Versionsnummer im Namen tragen. Nun stehen die Features für die dieses Jahr erscheinende Version ECMAScript 2016 fest – und die fällt deutlich kleiner aus, als gehofft.

So schaffen es gerade einmal zwei Features in die neue Standardversion der Programmiersprache: Array.prototype.includes und der Exponentiation Operator. Nicht dabei ist dagegen das langerwartete Async-Functions-Feature, bei dem das TC39-Komitee auf Nummer sicher gehen will, bis es endgültig den Weg in den offiziellen JavaScript-Standard schafft. Abel Avram hat die neuen ECMAScript-2016-Features in einem Blogpost vorgestellt.

Das sind die neuen ECMAScript-2016-Features

Während im aktuellen ECMAScript-Standard ES 2015 noch eine ganze Reihe neuer Features implementiert wurden, beschränkt man sich beim ersten jährlichen Release der Programmiersprache auf gerade einmal zwei neue Features: Array.prototype.includes und den Exponentiation Operator. So befinden sich zwar auch viele weitere Features in verschiedenen Stadien des ECMAScript-Standardisierungsprozesses, doch nur die beiden genannten Features haben es in die finale Stufe 4 „Finished“ geschafft.

ECMAScript-Standardisierungsprozess des TC39-Komittees

Damit ein Feature in den offiziellen ECMAScript-Standard aufgenommen werden kann, muss es einen umfangreichen Standardisierungsprozess durchlaufen, der sich aus vier Stufen zusammensetzt:

1. Proposal > 2. Draft > 3. Candidate > 4. Finished

Erst Features, die sich in Stufe vier befinden, können für ein offizielles Release herangezogen werden. Dafür muss das entsprechende Feature nicht nur einige Akzeptanztests bestehen, sondern auch über mindestens zwei spezifikationskonforme Implementierungen sowie signifikante praktische Erfahrungen mit den Implementierungen verfügen.

Mehr Informationen zum ECMAScript-Standardisierungsprozess bietet Dr. Axel Rauschmayer auf seiner Website.

Array.protype.includes

Bei der Nutzung von ECMAScript-Arrays ist es nützlich, festzustellen, ob ein Array ein Element beinhaltet. Mit dem bisher weit verbreiteten Pattern gab es jedoch immer wieder Probleme, die durch die Einführung des neuen Array.prototype.includes-Features behoben werden sollen. Ursprünglich lautete die Syntax des Features noch Array.prototype.contains; da das Komitee diese jedoch als nicht webkompatibel eingestuft hat, wurde die Schreibweise in die nun offiziell übernommene Schreibweise geändert. Mehr Informationen zu dem neuen Features bietet das zugehörige Proposal auf GitHub.

Exponentiation Operator

Auch das von Rick Waldron vorgeschlagene Exponentiation-Operator-Feature hat es in das anstehende Release von ECMAScript 2016 geschafft.  Die Syntax des Operators sieht folgendermaßen aus:

var1 ** var2

Damit bietet der neue Exponentiation Operator vor allem eine einfachere Schreibweise gegenüber der bisherigen Möglichkeit mit der Math.pow-Funktion den Exponenten eines Wertes zu berechnen. Ein einfaches Beispiel des Exponentiation Operators in Aktion ist etwa das folgende:

let cubed = 2 ** 3;

Etwas ausführlicher hat Marius Schulz das neue Feature in einem Blogpost vorgestellt; einige weitere Informationen dazu bietet auch das Proposal.

API Summit 2017

JavaScript Testing in der Praxis

mit Dominik Ehrenberg (crosscan) & Sebastian Springer (MaibornWolff)

Node.js Quickstart

mit Sebastian Springer (MaibornWolff)

International JavaScript Conference 2018

GraphQL – where did all my endpoints go?

mit Chris Noring (McKinsey)

Make Node.js API’s great with TypeScript

mit Dmytro Zharkov (Zalando)

Wo bleibt Async-Functions?

Vor allem auf ein Feature wartet die JavaScript-Community derzeit: die Implementierung von Async-Functions in den offiziellen JavaScript-Standard. Eigentlich hatte man gehofft, dass das Features es bereits in das Release von ECMAScript 2016 schaffen würde, doch gerade bei diesem Feature lässt das TC39-Komitee Vorsicht walten. So befinden sich Async-Functions bereits kurz vor der finalen Stufe und wurden sogar zweimal erfolgreich interoperabel implementiert, trotzdem will man sicher gehen, dass es durch Async nicht zu Problemen mit nicht länger funktionierenden Websites oder der Performance kommt.

Auch einige weitere Features befinden sich auf Stufe 3 „Candidate“ und könnten im nächsten Jahr zur offiziellen Standard-Version hinzugefügt werden. Dazu zählt zum Beispiel:

  • SIMD.JS – SIMD APIs
  • Object.values/Object.entries
  • String padding
  • Trailing commas in function parameter lists and calls
  • Object.getOwnPropertyDescriptors

Allerdings gilt auch hier, dass es keine Garantie gibt, dass die genannten Features auch tatsächlich in ECMAScript 2017 landen werden.

Aufmacherbild: 2016 written on rural road von Shutterstock / Urheberrecht: Gustavo Frazao

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -