A JavaScript uralja a webet – és az ECMAScript, a nyelv magja, egyre érettebb. Az év közepére várható új specifikáció (ES6 vagy JS2) számos olyan újítást hoz, amelyek már tesztelhetők. A Firefox jelenleg a legjobb támogatást nyújtja, de a polyfillek olyan transzpilereken keresztül, mint a Google Traceur, is lehetségesek. Az alábbiakban röviden áttekintjük az ES6 új funkcióit.
Az új let kulcsszó sok mindent jobban teljesít, mint a var : a scoping most pontosan úgy viselkedik, mint más nyelveken (C/C++, Java), ezért ha a blokkoknak is megvan a saját hatókörük. Javításra kerül az emelés, azaz a változódeklarációk (nem érték-hozzárendelések) priorizálása az adott hatókörön belül.:
console.log(x); var x = 'foo'; // undefined console.log(y); let y = 'bar'; // not initialized
Az egyéb újítások száma igen nagy: konstansok (const), függvények alapértelmezett értékei (függvény pow(a,b=2) { return Math.pow(a,b); }), új jelölés a függvényekhez (let pow = (a,b=2) => Math.pow(a,b);), számos új függvény (repeat(), tartalmazzath(), konstrukció a new for ...p), -ból.
Érdemes megemlíteni még az új Set, Map, Proxy és Symbol adattípusokat, a JavaScript-fájlok (egyéb részei) importálásának lehetőségét, valamint az osztályok és az öröklődés új, intuitív szintaxisát. De gyakran vannak apró, de régóta várt dolgok is, mint például a sortörés lehetősége a karakterlánc-literálokban (figyelje meg a speciális idézőjeleket):
`foo bar`
A JavaScript már régóta sokkal több, mint egy eszköz apró weboldali trükkökhöz – hatékony, nagy teljesítményű webes alkalmazások létrehozására használják, amelyek minden tekintetben ugyanolyan jók, mint asztali megfelelőik. A rengeteg hasznos új funkcióval és az ES6 meglévő támogatásával a programozás kétszer olyan élvezetes.
Ki ne mindig akarta volna ellenőrizni két szám egyenlőségét az új Number.EPSILON segítségével , amelynek értéke az 1 és a következő magasabb lebegőpontos érték közötti különbség?
let cmp = (a,b) => Math.abs(a-b) < Number.EPSILON;