JavaScript-Standard ECMAScript 2016 offiziell verabschiedet

Die neuen Funktionen sind bereits seit Januar bekannt, aber jetzt ist der JavaScript-Standard offiziell verabschiedet und folgt damit dem im letzten Jahr beschlossenen Jahresrhythmus.

 –  23 Kommentare
JavaScript-Standard ECMAScript 2016 offiziell verabschiedet
Anzeige

Ende Januar hatte das Standardisierungskomitee bereits die neuen Features für ECMAScript 2016 festgelegt. Der darauf seit dem 1. März erfolgte Standardisierungsprozess ist nun abgeschlossen. Anfang 2015 hatten die Gestalter des Standards angekündigt, dass es jährliche Updates des Standards geben soll. Gleichzeitig hielt die Jahreszahl Einzug in den Namen: ECMAScript 2016 ist die siebte Version des Standards.

In seiner Zeit bei Netscape hatte Brendan Eich die Sprache erfunden, die Einzug in den Netscape Navigator 2.0 und anschließend in Microsofts Internet Explorer 3.0 hielt. Die Arbeiten an der offiziellen ECMAScript-Spezifikation begannen Ende 1996 und führten 1997 zu ES1. Eine ISO/IEC-Zertifizierung folgte 1998 und im selben Jahr erschien ES2. Nachdem 1993 ES3 veröffentlicht wurde, kam es zu Unstimmigkeiten zwischen den Browserherstellern und daraufhin zu einer zehnjährigen Verzögerung: Version 4 des Standards fiel ganz aus und die fünfte wurde 2009 als ECMA-262 5th edition veröffentlicht.

Anzeige

Die im letzten Jahr erschienene sechste Version trug den Namen ECMAScript 2015, um auf die jährlichen Updates vorzubereiten, die sich mit der aktuellen Version fortsetzt. Dieses Jahr gibt es in ECMAScript 2016 lediglich zwei neue Features, was auch den kürzeren Abständen geschuldet ist. Die Sprache bekommt mit ** einen Potenzierungsoperator, der wie andere mathematische Operatoren auch zur direkten Zuweisung als **= funktioniert:

let n = 4;
n **=2 ; // -> n wird zu 4 hoch 2, also 16

Die neue Methode includes() überprüft, ob ein Array ein bestimmtes Element erhält. In den meisten Fällen ist sie eine Vereinfachung von indexOf() > -1. Eine Ausnahme ergibt sich mit dem Wert NaN, der als Not-a-Number (keine Zahl) definiert ist:

[1, 2, NaN].includes(NaN) // ergibt true
[1, 2, NaN].indexOf(NaN) // ergibt -1,
// da per Definition NaN === NaN false ist

Mit der Verabschiedung von ECMAScript 2016 haben die neuen Features alle vier – wenn man "stage 0" mitrechnet fünf – Stufen des Standards durchlaufen, die das TC39 (Technical Committee 39) festgelegt hat. (rme)

Anzeige