ECMAScript 2021
Số phiên bản JavaScript
Các phiên bản ECMAScript cũ được đặt tên theo số: ES5 và ES6.
Từ 2016 các phiên bản được đặt tên theo năm: ES2016, 2018, 2020...
Các tính năng mới trong ES2021
Cảnh báo
Những tính năng này là tương đối mới.
Các trình duyệt cũ hơn có thể cần mã thay thế (Polyfill)
JavaScript Promise.any()
Ví dụ
// Create a Promise
const myPromise1 = new Promise((resolve, reject) => {
setTimeout(resolve, 200, "King");
});
// Create another Promise
const myPromise2 = new Promise((resolve, reject) => {
setTimeout(resolve, 100, "Queen");
});
// Run when any promise fulfill
Promise.any([myPromise1, myPromise2]).then((x) => {
myDisplay(x);
});
Hãy tự mình thử » Promise.any()
được hỗ trợ trong tất cả các trình duyệt hiện đại kể từ tháng 9 năm 2020:
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Aug 2019 | Aug 2020 | Jul 2020 | Sep 2020 | Sep 2020 |
Chuỗi JavaScript Thay thếTất cả()
ES2021 đã giới thiệu phương thức chuỗi replaceAll()
:
Ví dụ
text = text.replaceAll("Cats","Dogs");
text = text.replaceAll("cats","dogs");
Hãy tự mình thử » Phương thức replaceAll()
cho phép bạn chỉ định một biểu thức chính quy thay vì một chuỗi cần thay thế.
Nếu tham số là một biểu thức chính quy thì cờ chung (g) phải được đặt, nếu không thì lỗi TypeError sẽ được đưa ra.
Ví dụ
text = text.replaceAll(/Cats/g,"Dogs");
text = text.replaceAll(/cats/g,"dogs");
Hãy tự mình thử »Ghi chú
ES2020 đã giới thiệu phương thức chuỗi matchAll().
Dấu tách số JavaScript (_)
ES2021 đưa ra dấu phân cách số (_) để làm cho các số dễ đọc hơn:
Dấu phân cách số chỉ dành cho mục đích sử dụng trực quan.
Dấu phân cách số có thể được đặt ở bất cứ đâu trong một số:
Ghi chú
Không được phép phân cách số ở đầu hoặc cuối số.
Trong JavaScript chỉ các biến mới có thể bắt đầu bằng _.
Dấu tách số được hỗ trợ trong tất cả các trình duyệt hiện đại kể từ tháng 1 năm 2020:
Chrome 75 | Edge 79 | Firefox 74 | Safari 13.1 | Opera 67 |
Jun 2019 | Jan 2020 | Oct 2019 | Sep 2019 | Jun 2019 |