ECMAScript 2017
بدأت اصطلاح تسمية JavaScript بـ ES1 و ES2 و ES3 و ES5 و ES6.
لكن ECMAScript 2016 و 2017 لم يُطلق عليهما ES7 و ES8.
منذ عام 2016 ، تم تسمية الإصدارات الجديدة حسب السنة (ECMAScript 2016/2017 / 2018).
الميزات الجديدة في ECMAScript 2017
يقدم هذا الفصل الميزات الجديدة في ECMAScript 2017:
- حشوة سلسلة جافا سكريبت
- إدخالات كائن جافا سكريبت
- Object.values جافا سكريبت
- وظائف JavaScript غير متزامنة
- ذاكرة جافا سكريبت المشتركة
حشوة سلسلة جافا سكريبت
أضاف ECMAScript 2017 طريقتين للسلسلة: padStart
ودعم padEnd
الحشو في بداية السلسلة ونهايتها.
مثال
let str = "5";
str = str.padStart(4,0);
// result is 0005
مثال
let str = "5";
str = str.padEnd(4,0);
// result is 5000
لا يتم دعم String Padding في Internet Explorer.
كان Firefox و Safari أول المتصفحات التي تدعم حشوة سلسلة JavaScript:
Chrome 57 | Edge 15 | Firefox 48 | Safari 10 | Opera 44 |
Mar 2017 | Apr 2017 | Aug 2016 | Sep 2016 | Mar 2017 |
إدخالات كائن JavaScript
يضيف ECMAScript 2017 Object.entries
طريقة جديدة للكائنات.
ترجع طريقة Object.entries () مصفوفة من أزواج المفتاح / القيمة في كائن:
مثال
const person = {
firstName : "John",
lastName : "Doe",
age : 50,
eyeColor : "blue"
};
document.getElementById("demo").innerHTML =
Object.entries(person);
يجعل Object.entries () من السهل استخدام الكائنات في الحلقات:
مثال
const fruits = {Bananas:300, Oranges:200, Apples:500};
let text = "";
for (let [fruit, value] of Object.entries(fruits)) {
text += fruit + ": " + value + "
";
}
يجعل () Object.entries من السهل أيضًا تحويل الكائنات إلى خرائط:
مثال
const fruits = {Bananas:300, Oranges:200, Apples:500};
const myMap = new Map(Object.entries(fruits));
كان Chrome و Firefox أول المتصفحات التي تدعم
Object.entries
:
Chrome 47 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
Jun 2016 | Aug 2016 | Jun 2016 | Mar 2017 | Oct 2016 |
قيم كائن JavaScript
Object.values
تشبه Object.entries
، لكنها تُرجع مصفوفة ذات بُعد واحد لقيم الكائن:
مثال
const person = {
firstName : "John",
lastName : "Doe",
age : 50,
eyeColor : "blue"
};
document.getElementById("demo").innerHTML =
Object.values(person);
كان كل من Firefox و Chrome أول المتصفحات التي تدعم
Object.values
:
Chrome 54 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
Oct 2016 | Aug 2016 | Jun 2016 | Mar 2017 | Oct 2016 |
وظائف JavaScript Async
في انتظار مهلة
async function myDisplay() {
let myPromise = new Promise(function(myResolve, myReject) {
setTimeout(function() { myResolve("I love You !!"); }, 3000);
});
document.getElementById("demo").innerHTML = await myPromise;
}
myDisplay();
كان Firefox و Chrome أول المتصفحات التي تدعم وظائف JavaScript غير المتزامنة:
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
Dec 2016 | Apr 2017 | Mar 2017 | Sep 2017 | Dec 2016 |