ECMAScript 2017
JavaScript 命名约定始于 ES1、ES2、ES3、ES5 和 ES6。
但是,ECMAScript 2016 和 2017 未被称为 ES7 和 ES8。
自 2016 年以来,新版本按年份命名(ECMAScript 2016/2017/2018)。
ECMAScript 2017 中的新特性
本章介绍 ECMAScript 2017 的新特性:
- JavaScript 字符串填充
- JavaScript Object.entries
- JavaScript Object.values
- 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 年 3 月 | 2017 年 4 月 | 2016 နှစ် စက်တင်ဘာ လ | 2016 နှစ် ဇွန် လ | 2017 年 3 月 |
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 年 3 月 | 2016 年 10 月 |
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 年 10 月 | 2016 နှစ် စက်တင်ဘာ လ | 2016 နှစ် ဇွန် လ | 2017 年 3 月 | 2016 年 10 月 |
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 | IE | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
2016 年 12 月 | 2017 年 4 月 | 2017 年 3 月 | 2017 年 9 月 | 2016 年 12 月 |