ECMAScript 2018
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 2018
Chương này giới thiệu các tính năng mới trong ECMAScript 2018:
- Lặp lại không đồng bộ
- Lời hứa cuối cùng
- Thuộc tính phần còn lại của đối tượng
- Các tính năng RegExp mới
Lặp lại không đồng bộ JavaScript
ECMAScript 2018 đã thêm các trình vòng lặp và vòng lặp không đồng bộ.
Với các vòng lặp không đồng bộ, chúng ta có thể sử dụng await
từ khóa trong for/of
các vòng lặp.
Thí dụ
for await () {}
Firefox và Safari là những trình duyệt đầu tiên hỗ trợ tính năng lặp lại không đồng bộ JavaScript:
Chrome 63 | Edge 79 | Firefox 57 | Safari 11 | Opera 50 |
Dec 2017 | Jan 2020 | Nov 2017 | Sep 2017 | Jan 2018 |
JavaScript Promise.finally
ECMAScript 2018 hoàn thiện việc triển khai đầy đủ đối tượng Promise với Promise.finally
:
Thí dụ
let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();
Chrome và Firefox là những trình duyệt đầu tiên hỗ trợ Promise.finally
:
Chrome 63 | Edge 18 | Firefox 58 | Safari 11.1 | Opera 50 |
Dec 2017 | Nov 2018 | Jan 2018 | Mar 2018 | Jan 2018 |
Thuộc tính phần còn lại của đối tượng JavaScript
ECMAScript 2018 đã thêm các thuộc tính nghỉ ngơi.
Điều này cho phép chúng tôi hủy một đối tượng và thu thập phần thừa vào một đối tượng mới:
Thí dụ
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }
Chrome, Firefox, ans Opera là những trình duyệt đầu tiên hỗ trợ các thuộc tính phần còn lại của đối tượng:
Chrome 60 | Edge 79 | Firefox 55 | Safari 11.1 | Opera 47 |
Jul 2017 | Jan 2020 | Aug 2017 | Mar 2018 | Aug 2017 |
Các tính năng mới của JavaScript RegExp
ECMAScript 2018 đã thêm 4 tính năng RegExp mới:
- Thoát thuộc tính Unicode (\ p {...})
- Xác định Lookbehind (? <=) Và (? <!)
- Nhóm Chụp đã Đặt tên
- cờ s (dotAll)
Chrome và Firefox là những trình duyệt đầu tiên hỗ trợ tất cả các tính năng mới của RegExp:
Chrome 64 | Edge 79 | Firefox 78 | Safari 12 | Opera 51 |
Jan 2018 | Jan 2020 | Jun 2020 | Sep 2018 | Feb 2018 |