ECMAScript 2017
بدأت قواعد التسمية في JavaScript بـ ES1، ES2، ES3، ES5 وES6.
لكن، لم يُسمى ECMAScript 2016 و2017 بـ ES7 وES8.
منذ 2016، تُسمى إصدارات جديدة حسب السنة (ECMAScript 2016/2017/2018).
الخصائص الجديدة في ECMAScript 2017
هذا الفصل يقدم خصائص جديدة لـ ECMAScript 2017:
- ملء 字رة JavaScript
- Object.entries JavaScript
- Object.values JavaScript
- وظائف تنفيذية متزامنة JavaScript
- ذاكرة تقاسم JavaScript
ملء 字رة JavaScript
أضاف ECMAScript 2017 إثنين من طرق String:padStart
و padEnd
، لدعم الملء عند بداية ونهاية 字رة.
实例
let str = "5"; str = str.padStart(4,0); // النتيجة: 0005
实例
let str = "5"; str = str.padEnd(4,0); // 结果是: 5000
Internet Explorer 不支持字符串填充。
Firefox 和 Safari 是第一批支持 JavaScript 字符串填充的浏览器:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 57 | Edge 15 | Firefox 48 | Safari 10 | Opera 44 |
مارس 2017 | أبريل 2017 | 2016 ٢١٤ ٨١ | 2016 年 9 月 | مارس 2017 |
JavaScript 对象条目
ECMAScript 2017 向对象添加了新的 Object.entries
方法。
Object.entries() 方法返回对象中键/值对的数组:
实例
const person = { firstName : "Bill", lastName : "Gates", 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 | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 47 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
2016 ٢١٤ ١٦ | 2016 ٢١٤ ٨١ | 2016 ٢١٤ ١٦ | مارس 2017 | أكتوبر 2016 |
JavaScript 对象值
Object.values
类似 Object.entries
,但返回对象值的单维数组:
实例
const person = { firstName : "Bill", lastName : "Gates", age : 50, eyeColor : "blue" }; document.getElementById("demo").innerHTML = Object.values(person);
Firefox 和 Chrome 是第一批支持 Object.values
的浏览器:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 54 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
أكتوبر 2016 | 2016 ٢١٤ ٨١ | 2016 ٢١٤ ١٦ | مارس 2017 | أكتوبر 2016 |
وظائف الجافاسكربت الموسعة
انتظار التأخير
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 هما أولى المتصفحات التي تدعم الوظائف الجافاسكربت الموسعة بشكل متسلسل:
Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
ديسمبر 2016 | أبريل 2017 | مارس 2017 | سبتمبر 2017 | ديسمبر 2016 |