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