تهيمن لغة جافا سكريبت على الويب، وتتطور لغة ECMAScript، جوهر هذه اللغة، بشكل ملحوظ. ويأتي الإصدار الجديد (ES6 أو JS2)، المتوقع منتصف العام، بالعديد من الابتكارات التي يمكن تجربتها بالفعل. يوفر متصفح فايرفوكس حاليًا أفضل دعم ، ولكن يمكن أيضًا استخدام حلول بديلة عبر برامج تحويل المترجمات مثل Google Traceur . فيما يلي نظرة عامة موجزة على الميزات الجديدة في ES6.
الكلمة الأساسية الجديدة Let تفعل أشياء كثيرة بشكل أفضل من var : أصبح النطاق يتصرف الآن تمامًا كما هو الحال في اللغات الأخرى (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(), beginWith(), find(), findIndex())، وبناء الحلقة الجديدة لـ ... of.
ومن الجدير بالذكر أيضًا أنواع البيانات الجديدة Set وMap وProxy وSignal، والقدرة على استيراد (أجزاء من أخرى) ملفات JavaScript مع الاستيراد وبناء جملة بديهي جديد للفئات والميراث. ولكن غالبًا ما تكون هناك أيضًا أشياء صغيرة ولكنها طال انتظارها مثل إمكانية فواصل الأسطر في السلاسل الحرفية (لاحظ علامات الاقتباس الخاصة):
`foo bar`
لطالما كانت لغة جافا سكريبت أكثر من مجرد أداة لتعديلات بسيطة على مواقع الويب، فهي تُستخدم لإنشاء تطبيقات ويب قوية وعالية الأداء تُضاهي تطبيقات سطح المكتب. ومع وفرة الميزات الجديدة المفيدة ودعم ES6 الحالي، أصبحت البرمجة أكثر متعةً بمرتين.
من منا لم يرغب دائمًا في التحقق من المساواة بين رقمين بمساعدة الرقم الثابت الجديد EPSILON ، الذي تحمل قيمته الفرق بين 1 وقيمة النقطة العائمة الأعلى التالية؟
let cmp = (a,b) => Math.abs(a-b) < Number.EPSILON;