ECMAScript 2017
Quy ước đặt tên JavaScript bắt đầu với ES1, ES2, ES3, ES5 và ES6.
Nhưng, ECMAScript 2016 và 2017 không được gọi là ES7 và ES8.
Kể từ năm 2016, các phiên bản mới được đặt tên theo năm (ECMAScript 2016/2017/2018).
Các tính năng mới trong ECMAScript 2017
Chương này giới thiệu các tính năng mới trong ECMAScript 2017:
- JavaScript String padding
- JavaScript Object.entries
- JavaScript Object.values
- Các hàm không đồng bộ của JavaScript
- JavaScript chia sẻ bộ nhớ
JavaScript String Padding
ECMAScript 2017 đã thêm hai phương thức Chuỗi: padStart
và padEnd
để hỗ trợ đệm ở đầu và cuối chuỗi.
Thí dụ
let str = "5";
str = str.padStart(4,0);
// result is 0005
Thí dụ
let str = "5";
str = str.padEnd(4,0);
// result is 5000
String Padding không được hỗ trợ trong Internet Explorer.
Firefox và Safari là những trình duyệt đầu tiên hỗ trợ phần đệm chuỗi JavaScript:
Chrome 57 | Edge 15 | Firefox 48 | Safari 10 | Opera 44 |
Mar 2017 | Apr 2017 | Aug 2016 | Sep 2016 | Mar 2017 |
Các mục nhập đối tượng JavaScript
ECMAScript 2017 bổ sung một Object.entries
phương thức mới cho các đối tượng.
Phương thức Object.entries () trả về một mảng các cặp khóa / giá trị trong một đối tượng:
Thí dụ
const person = {
firstName : "John",
lastName : "Doe",
age : 50,
eyeColor : "blue"
};
document.getElementById("demo").innerHTML =
Object.entries(person);
Object.entries () giúp đơn giản hóa việc sử dụng các đối tượng trong các vòng lặp:
Thí dụ
const fruits = {Bananas:300, Oranges:200, Apples:500};
let text = "";
for (let [fruit, value] of Object.entries(fruits)) {
text += fruit + ": " + value + "
";
}
Object.entries () cũng giúp chuyển đổi đối tượng thành bản đồ đơn giản:
Thí dụ
const fruits = {Bananas:300, Oranges:200, Apples:500};
const myMap = new Map(Object.entries(fruits));
Chrome và Firefox là những trình duyệt đầu tiên hỗ trợ
Object.entries
:
Chrome 47 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
Jun 2016 | Aug 2016 | Jun 2016 | Mar 2017 | Oct 2016 |
Giá trị đối tượng JavaScript
Object.values
tương tự như Object.entries
, nhưng trả về một mảng thứ nguyên duy nhất của các giá trị đối tượng:
Thí dụ
const person = {
firstName : "John",
lastName : "Doe",
age : 50,
eyeColor : "blue"
};
document.getElementById("demo").innerHTML =
Object.values(person);
Firefox và Chrome là những trình duyệt đầu tiên hỗ trợ
Object.values
:
Chrome 54 | Edge 14 | Firefox 47 | Safari 10.1 | Opera 41 |
Oct 2016 | Aug 2016 | Jun 2016 | Mar 2017 | Oct 2016 |
Các chức năng không đồng bộ của JavaScript
Đang chờ hết thời gian chờ
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 và Chrome là những trình duyệt đầu tiên hỗ trợ các chức năng JavaScript không đồng bộ:
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
Dec 2016 | Apr 2017 | Mar 2017 | Sep 2017 | Dec 2016 |