ECMAScript 2018
بدأت اصطلاح تسمية JavaScript بـ ES1 و ES2 و ES3 و ES5 و ES6.
لكن ECMAScript 2016 و 2017 لم يُطلق عليهما ES7 و ES8.
منذ عام 2016 ، تم تسمية الإصدارات الجديدة حسب السنة (ECMAScript 2016/2017 / 2018).
الميزات الجديدة في ECMAScript 2018
يقدم هذا الفصل الميزات الجديدة في ECMAScript 2018:
التكرار غير المتزامن لجافا سكريبت
أضاف ECMAScript 2018 مكررات ومتكررات غير متزامنة.
باستخدام العناصر التكرارية غير المتزامنة ، يمكننا استخدام await
الكلمة الأساسية في for/of
الحلقات.
مثال
for await () {}
كان Firefox و Safari أول المتصفحات التي تدعم التكرار غير المتزامن لـ JavaScript:
Chrome 63 | Edge 79 | Firefox 57 | Safari 11 | Opera 50 |
Dec 2017 | Jan 2020 | Nov 2017 | Sep 2017 | Jan 2018 |
وعد جافا سكريبت
يكمل ECMAScript 2018 التنفيذ الكامل لكائن الوعد مع Promise.finally
:
مثال
let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();
كان Chrome و Firefox أول المتصفحات التي تدعم Promise.finally
:
Chrome 63 | Edge 18 | Firefox 58 | Safari 11.1 | Opera 50 |
Dec 2017 | Nov 2018 | Jan 2018 | Mar 2018 | Jan 2018 |
خصائص استعادة كائن JavaScript
أضاف ECMAScript 2018 خصائص الراحة.
هذا يسمح لنا بتدمير شيء ما وجمع بقايا الطعام على كائن جديد:
مثال
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }
كانت Chrome و Firefox و Opera هي المتصفحات الأولى التي تدعم خصائص راحة الكائن:
Chrome 60 | Edge 79 | Firefox 55 | Safari 11.1 | Opera 47 |
Jul 2017 | Jan 2020 | Aug 2017 | Mar 2018 | Aug 2017 |
ميزات JavaScript RegExp الجديدة
أضاف ECMAScript 2018 4 ميزات RegExp جديدة:
- هروب خاصية Unicode (\ p {...})
- تأكيدات البحث الخلفي (؟ <=) و (؟ <!)
- مجموعات الالتقاط المسماة
- s (dotAll) العلم
كان Chrome و Firefox أول المتصفحات التي تدعم جميع ميزات RegExp الجديدة:
Chrome 64 | Edge 79 | Firefox 78 | Safari 12 | Opera 51 |
Jan 2018 | Jan 2020 | Jun 2020 | Sep 2018 | Feb 2018 |