Những tính năng mới ECMAScript 2019 (ES10) trong JavaScript
JavaScript Versions | by
JavaScript là một trong những ngôn ngữ lập trình phổ biến nhất hiện nay, được sử dụng rộng rãi trong phát triển web và ứng dụng hiện đại. Để đáp ứng nhu cầu ngày càng cao của lập trình viên, ECMAScript – tiêu chuẩn của JavaScript – liên tục được cập nhật với các tính năng mới, giúp cải thiện cú pháp, tối ưu hiệu suất và tăng cường khả năng xử lý dữ liệu.
ECMAScript 2019 (ES10) là phiên bản tiếp theo của tiêu chuẩn này, mang đến nhiều cải tiến quan trọng giúp lập trình viên viết code dễ dàng hơn. Những tính năng như Array.prototype.flat(), Object.fromEntries(), Optional Catch Binding, String.trimStart()/trimEnd(), và nhiều cải tiến khác giúp JavaScript trở nên mạnh mẽ và linh hoạt hơn.
Trong bài viết này, mình sẽ tìm hiểu chi tiết những tính năng mới của ES10, so sánh với các phiên bản trước và tìm hiểu cách áp dụng chúng vào thực tế.
ECMAScript 2019 (ES10) là gì?
ECMAScript 2019 (hay ES10) là phiên bản tiêu chuẩn ECMAScript được phát hành vào năm 2019, tiếp tục cải tiến và bổ sung các tính năng giúp JavaScript trở nên mạnh mẽ hơn. So với các phiên bản trước, ES10 không thay đổi quá nhiều về mặt cú pháp nhưng vẫn mang lại nhiều tiện ích quan trọng, giúp lập trình viên viết code dễ dàng hơn, tối ưu hiệu suất và xử lý dữ liệu hiệu quả hơn.
Sau sự ra đời của ES6 (2015) với những thay đổi lớn như let, const, arrow function, class, modules, các phiên bản tiếp theo tập trung vào việc tối ưu hóa, nâng cao hiệu suất và cải thiện cú pháp để giúp JavaScript thân thiện hơn với lập trình viên. ES10 là một bước tiến tiếp theo, bổ sung những công cụ hữu ích cho lập trình viên mà không làm thay đổi quá nhiều cách thức hoạt động của ngôn ngữ.
Những cải tiến quan trọng của ES10 giúp JavaScript linh hoạt và hiệu quả hơn
Array.prototype.flat() và Array.prototype.flatMap()
flat()
giúp làm phẳng mảng nhiều cấp độ, giúp xử lý dữ liệu dễ dàng hơn.flatMap()
kết hợpmap()
vàflat()
, giúp tối ưu hóa xử lý mảng.
Ví dụ:
const arr = [1, 2, [3, 4, [5, 6]]]; console.log(arr.flat(2)); // Output: [1, 2, 3, 4, 5, 6]
Object.fromEntries() – Chuyển mảng key-value thành object
- Chuyển một mảng chứa các cặp
[key, value]
thành một object. - Dễ dàng tạo object từ các dữ liệu có cấu trúc danh sách.
Ví dụ:
const entries = [['name', 'Alice'], ['age', 25]]; const obj = Object.fromEntries(entries); console.log(obj); // Output: { name: 'Alice', age: 25 }
String.prototype.trimStart() và trimEnd()
trimStart()
loại bỏ khoảng trắng ở đầu chuỗi.trimEnd()
loại bỏ khoảng trắng ở cuối chuỗi.
Ví dụ:
const str = " Hello World! "; console.log(str.trimStart()); // "Hello World! " console.log(str.trimEnd()); // " Hello World!"
Optional Catch Binding – Viết gọn try...catch
- Trong ES10, không bắt buộc phải khai báo biến lỗi trong
catch()
.
Ví dụ:
try { throw new Error("Lỗi!"); } catch { // Không cần đặt (error) console.log("Có lỗi xảy ra!"); }
Symbol.prototype.description – Lấy mô tả của Symbol
- Truy xuất mô tả của
Symbol
dễ dàng hơn với.description
.
Ví dụ:
const sym = Symbol("Mô tả"); console.log(sym.description); // "Mô tả"