تقديم الميزات الجديدة التي يضيفها ECMAScript 2016 (ES7) إلى JavaScript

منذ إصدار ECMAScript 2015 (المعروف أيضًا باسم ES6) ، قدم مجموعة ضخمة من الميزات الجديدة. وهي تشمل وظائف الأسهم والمجموعات والخرائط والفئات والتدمير وغير ذلك الكثير. من نواح كثيرة ، فإن ES2015 يشبه تعلم إصدار جديد من JavaScript.

تتحكم اللجنة الفنية 39 لـ Ecma في مواصفات ECMA. قرروا إصدار نسخة جديدة من ECMAScript كل عام بدءًا من عام 2015. التحديث السنوي يعني عدم وجود المزيد من الإصدارات الكبيرة مثل ES6.

قدم ECMAScript 2016 ميزتين جديدتين فقط:

  • Array.prototype.includes ()
  • عامل الأسي

Array.prototype.includes ()

Array.prototype.includes()يتحقق من المصفوفة التي valueتم تمريرها كملف argument. يتم إرجاعها trueإذا كانت المصفوفة تحتوي على value، وإلا فإنها ترجع false.

من قبل ، كنا بحاجة إلى استخدام Array.prototype.indexOf()للتحقق مما إذا كانت المصفوفة المعينة تحتوي على عنصر أم لا.

let numbers = [1, 2, 3, 4];
if(numbers.indexOf(2) !== -1) { console.log('Array contains value');}

مع ECMA2016 ، يمكننا كتابة:

if(numbers.includes(2)) { console.log('Array contains value');}

Array.prototype.includes()مقابض NaNأفضل من Array.prototype.indexOf(). إذا كانت المصفوفة تحتوي NaN، indexOf()فلن تُرجع فهرسًا صحيحًا أثناء البحث عن NaN.

Array.prototype.includes()إرجاع القيمة الصحيحة عند البحث عن NaN.

NaNهي خاصية لكائن JavaScript العام وتمثل قيمة ليست رقمًا. هناك مراوغات معروفة عند المقارنة NaNبقيمة أخرى. يتم تناول هذه في Array.prototype.includes()، ولكن ليس في Array.protoype.indexOf.

let numbers = [1, 2, 3, 4, NaN];
console.log(numbers.indexOf(NaN)); //Prints -1console.log(numbers.includes(NaN)); //Prints true

عامل الأُس

يدعم JavaScript بالفعل العديد من العوامل الحسابية مثل +, -, *والمزيد.

قدم ECMAScript 2016 عامل الأسي ، **.

لها نفس الغرض مثل Math.pow(). تعيد الوسيطة الأولى المرفوعة إلى قوة الوسيطة الثانية.

let base = 3;let exponent = 4;let result = base**exponent;
console.log(result); //81

استنتاج

توفر الميزات الجديدة التي قدمتها ECMA2016 بدائل ملائمة للوظائف الحالية.

وبالنظر إلى المستقبل ، تم الانتهاء من ECMA2017 في يونيو من هذا العام. تشمل الميزات الجديدة async/await، SharedArrayBufferوبعض الطرق المفيدة Object.prototype.