JavaScript web'e hakim durumda ve dilin çekirdeği olan ECMAScript olgunlaşıyor. Yıl ortasında çıkması beklenen yeni spesifikasyon (ES6 veya JS2), halihazırda test edilebilen çok sayıda yenilik getiriyor. Firefox şu anda en iyi desteği sunuyor, ancak Google Traceur gibi derleyiciler aracılığıyla polyfill'ler de mümkün. ES6'nın yeni özelliklerine kısa bir genel bakış aşağıda yer almaktadır.
New anahtar kelimesi let birçok şeyi var'dan daha iyi yapıyor: scoping artık tam olarak diğer dillerdeki (C/C++, Java) gibi davranıyor, bu nedenle if bloklarının artık kendi kapsamları da var. Kaldırma, yani ilgili kapsam dahilinde değişken bildirimlerinin (değer atamalarının değil) önceliklendirilmesi de onarılacaktır.:
console.log(x); var x = 'foo'; // undefined console.log(y); let y = 'bar'; // not initialized
Diğer yeniliklerin sayısı oldukça fazladır: sabitler (const), işlevler için varsayılan değerler (function pow(a,b=2) { return Math.pow(a,b); }), işlevler için yeni bir gösterim (let pow = (a,b=2) => Math.pow(a,b);), çeşitli yeni işlevler (repeat(), include(), startWith(), find(), findIndex()), ... of.
Ayrıca yeni Set, Harita, Proxy ve Sembol veri türleri, JavaScript dosyalarını (diğer bölümleri) içe aktarma yeteneği ve sınıflar ve kalıtım için yeni bir sezgisel sözdizimi de bahsetmeye değerdir. Ancak çoğu zaman , dize değişmezlerinde satır sonları olasılığı gibi küçük ama uzun zamandır beklenen şeyler de vardır (özel tırnak işaretlerine dikkat edin):
`foo bar`
JavaScript, uzun zamandır sadece küçük web sitesi hileleri için kullanılan bir araç olmaktan çok daha fazlası; masaüstü muadilleri kadar iyi, güçlü ve yüksek performanslı web uygulamaları oluşturmak için kullanılıyor. Çok sayıda faydalı yeni özellik ve mevcut ES6 desteğiyle programlama iki kat daha keyifli hale geliyor.
Kim her zaman değeri 1 ile bir sonraki daha yüksek kayan nokta arasındaki fark olan yeni sabit Number.EPSILON'un yardımıyla iki sayının eşitliğini kontrol etmek istemedi?
let cmp = (a,b) => Math.abs(a-b) < Number.EPSILON;