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:

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");

Thử trực tiếp

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 (gnếu không sẽ ném TypeError.

Mẫu

text = text.replaceAll(/Cats/g,"Dogs");
text = text.replaceAll(/cats/g,"dogs");

Thử trực tiếp

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;

Thử trực tiếp

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);

Thử trực tiếp

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;

Thử trực tiếp

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