ECMAScript 6 hat viele Neuerungen. Im Detail kriegt man jedoch das Gruseln.
Es gibt immer noch keinen nativen Integer-Type. Entsprechend werden auch fĂĽr ECMAScript 6 die Parser eine Sonderfall-Behandlung nach der anderen vornehmen mĂĽssen, damit Addition vernĂĽnftig funktioniert. [1]
Und bei den Conversion Functionen sind auch einige unschöne Punkte. Während bei der ToNumber[2] unsinnige Werte Exceptions werfen, entschied man sich bei ToInteger dafür, offensichtlich unsinnige Werte wie NaN (Not A Number) mal eben zu "+0" zu Wandeln[3]. Auch wichtig, unendlich ist offensichtlich ein Integer #MussManWissen [3].
Es ist IMO besser einem fliegt die JS-Anwendung mit einer Exception um die Ohren die einem sagt an welchem Punkt etwas in die Hose gegangen ist, als dass die Anwendung nicht läuft man aber nicht herausfinden kann wo genau sie anfängt falsch zu laufen.
Auch bei Strings hat sich nicht viel getan. Die sind immer noch Sequenzen von 16Bit Einheiten. Und natürlich ist UTF-16 nur ein netter Vorschlag, aber kein Zwang. Entsprechend werden wieder einige Hersteller auf UCS2 oder andere kaputte Encoding zurück greifen. 8 Bit Einheiten und erzwungene UTF-8 Codierung hätte dabei so viele Vorteile.
Die neuen Features sind nett und vielleicht ändert sich meine Meinung noch (muss die Spezifikation mal in Ruhe durchlesen), aber im Allgemeinen ist das Fundament der Semantik immer noch Wackelpudding mit einem Haufen unspezifizierten Löchern..
[1]
http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-data-types-and-values
[2]
http://www.ecma-international.org/ecma-262/6.0/#sec-tonumber
[3]
http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger