ECMAScript 2021
Số phiên bản JavaScript
Phiên bản JS cũ được đặt tên theo số: ES5 (2009) và ES6 (2015).
Từ năm 2016, phiên bản được đặt tên theo năm: ECMAScript 2016, 2017, 2018, 2019,...
Tính năng mới
Tính năng mới trong ES2021:
- Promise.any()
- Phương thức chuỗi replaceAll()
- Dấu phân cách số (_)
Tính năng mới trong ES2022:
- Phương thức mảng at()
- Phương thức chuỗi at()
- Biểu thức chính quy /d
- Object.hasOwn()
- error.cause
- await import
- Phương thức và trường riêng
- Định nghĩa trường lớp
Cảnh báo
Tính năng này tương đối mới.
Trình duyệt cũ có thể cần mã thay thế (Polyfill)
Phương thức ReplaceAll() của JavaScript chuỗi
ES2021 đã giới thiệu phương thức chuỗi replaceAll():
Mẫu
text = text.replaceAll("Cats","Dogs"); text = text.replaceAll("cats","dogs");
phương thức replaceAll() cho phép bạn chỉ định một biểu thức chính quy thay vì chuỗi cần thay thế.
Nếu tham số là biểu thức chính quy, thì phải thiết lập dấu hiệu toàn cục (g
nếu không sẽ ném TypeError.
Mẫu
text = text.replaceAll(/Cats/g,"Dogs"); text = text.replaceAll(/cats/g,"dogs");
Lưu ý:ES2020 Đã giới thiệu phương thức chuỗi matchAll().
Dấu số phân cách trong JavaScript
ES2021 đã giới thiệu dấu số phân cách (_
) để làm cho số dễ đọc hơn:
Mẫu
const num = 1_000_000_000;
Dấu số phân cách chỉ dùng để mục đích hiển thị.
Mẫu
const num1 = 1_000_000_000; const num2 = 1000000000; (num1 === num2);
Dấu số phân cách có thể đặt ở bất kỳ vị trí nào trong số:
Mẫu
const num1 = 1_2_3_4_5;
Lưu ý
Dấu số phân cách không được phép xuất hiện ở đầu hoặc cuối số.
Trong JavaScript, chỉ cóBiếnCó thể bắt đầu bằng dấu _.
Từ tháng 1 năm 2020 trở đi, tất cả các trình duyệt hiện đại đều hỗ trợ dấu chấm số phân cách:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 75 | Edge 79 | Firefox 74 | Safari 13.1 | Opera 67 |
Tháng 6 năm 2019 | Tháng 1 năm 2020 | Tháng 10 năm 2019 | Tháng 9 năm 2019 | Tháng 6 năm 2019 |