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 kulcsszó let nem sokkal jobb, mint var: a tartalom meghatározás most pontosan úgy viselkedik, mint más nyelveken (C / C ++, Java), ezért ha-blokkok most is megvan a saját körét. Az emelés, vagyis a változó deklarációk (nem érték-hozzárendelések) előrehozása az adott hatókörön belül szintén javításra kerül:
console.log(x); var x = 'foo'; // undefined console.log(y); let y = 'bar'; // not initialized
A további újítások listája hosszú: konstansok (const), függvények alapértelmezett értékei (function 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(), contains(), startsWith(), find(), findIndex()), az új cikluskonstrukció a ... of függvényhez.
Említésre méltóak még az új Set, Map, Proxy és Symbol adattípusok, a (más fájlok részeinek) importálásának lehetősége az `import` paranccsal, valamint az osztályok és az öröklődés új, intuitív szintaxisa. Gyakran azonban a régóta várt apró funkciókról van szó, mint például a sortörések beillesztésének lehetősége a karakterlánc literálokba (figyeljük 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;