जावास्क्रिप्ट वेब जगत पर हावी है – और इस भाषा का मूल आधार, ECMAScript, परिपक्व हो रहा है। मध्य वर्ष में अपेक्षित नई विशिष्टता (ES6 या JS2) कई नवाचार लेकर आई है जिनका परीक्षण अभी से किया जा सकता है। वर्तमान में Firefox सबसे अच्छा समर्थन प्रदान करता है, लेकिन Google Traceur जैसे ट्रांसपाइलर के माध्यम से पॉलीफ़िल भी संभव हैं। ES6 की नई विशेषताओं का संक्षिप्त विवरण नीचे दिया गया है।
नया कीवर्ड लेट कई चीजें var से बेहतर करता है: स्कोपिंग अब अन्य भाषाओं (सी/सी++, जावा) की तरह ही व्यवहार करती है, यही कारण है कि अब ब्लॉक का भी अपना दायरा है। उत्थापन, यानी संबंधित दायरे के भीतर परिवर्तनीय घोषणाओं (मूल्य असाइनमेंट नहीं) की प्राथमिकता को भी दुरुस्त किया जाएगा:
console.log(x); var x = 'foo'; // undefined console.log(y); let y = 'bar'; // not initialized
अन्य नवाचारों की संख्या बड़ी है: स्थिरांक (const), फ़ंक्शंस के लिए डिफ़ॉल्ट मान (फ़ंक्शन pow(a,b=2) { return Math.pow(a,b); }), फ़ंक्शंस के लिए एक नया नोटेशन (let pow = (a,b=2) => Math.pow(a,b);), विभिन्न प्रकार के नए फ़ंक्शंस (रिपीट(), शामिल(), स्टार्टविथ(), फाइंड(), फाइंडइंडेक्स()), ... के लिए नया लूप निर्माण।
नए डेटा प्रकार सेट, मैप, प्रॉक्सी और सिंबल, आयात के साथ जावास्क्रिप्ट फ़ाइलों को आयात करने की क्षमता (अन्य के हिस्से) और कक्षाओं और विरासत के लिए एक नया सहज वाक्यविन्यास भी उल्लेख के लायक है। लेकिन अक्सर छोटी लेकिन लंबे समय से प्रतीक्षित चीजें भी होती हैं जैसे स्ट्रिंग अक्षर में लाइन ब्रेक की संभावना (विशेष उद्धरण चिह्नों पर ध्यान दें):
`foo bar`
जावास्क्रिप्ट लंबे समय से मामूली वेबसाइट ट्रिक्स के लिए एक टूल मात्र नहीं रहा है – इसका उपयोग शक्तिशाली, उच्च-प्रदर्शन वाले वेब एप्लिकेशन बनाने के लिए किया जाता है जो डेस्कटॉप एप्लिकेशन के समान ही बेहतरीन होते हैं। ढेर सारी उपयोगी नई सुविधाओं और ES6 के लिए मौजूदा समर्थन के साथ, प्रोग्रामिंग करना पहले से कहीं अधिक आनंददायक हो गया है।
कौन हमेशा नए स्थिर नंबर की मदद से दो नंबरों की समानता की जांच नहीं करना चाहता है। ईपीएसआईएलओएन , जिसका मूल्य 1 और अगले उच्चतर फ्लोटिंग पॉइंट मान के बीच अंतर को दर्शाता है ?
let cmp = (a,b) => Math.abs(a-b) < Number.EPSILON;