JavaScript đã có những tính năng mới nào mà bạn chưa biết kể từ ES6 đến ES11?

Tram Ho

Xin chào các bạn,

Có thể bạn đã biết, sau 6 năm tưởng chừng như tạm ngừng hoạt động từ bản ES5 ra đời năm 2009, thì vào tháng 6/2015, đã có một bản cập nhật quan trọng của JavaScript mang lại rất nhiều tính năng mới. Kể từ thời điểm đó, mỗi năm chúng ta đều đón nhận một version mới với một loạt các tính năng mới được cho là đem lại rất nhiều lợi ích, hiệu quả trong công việc của developer. TÍnh đến thời điểm hiện tại, ES12 hay ES2021 chuẩn bị sắp phát hành những tính năng mới, cùng với đó là ES11 đã là một phiên bản cũ. Từng đó cũng đủ cho chúng ta cảm thấy những phương thức, cách hoạt động thay đổi và nâng cấp một cách chóng mặt. Vậy bạn đã sử dụng hết tất thẩy những tính năng đó chưa? Thì trong bài viết này, chúng ta sẽ lần lượt điểm qua những tính năng trước khi kết thúc năm 2020 nhé! Let’s go

ES6 (ECMAScript 2015)

1. Arrow functions (=>)

2. Classes

3. Template strings

4. Let and Const

5. Promises

ES7 (ECMAScript 2016)

1. Array.prototype.includes

2. Exponentiation Operator

ES8 (ECMAScript 2017)

1. Object.values() and Object.entries()

2. String.prototype.padEnd() and String.prototype.padStart()

3. Async function (async/await)

ES9 (ECMAScript 2018)

1. Asynchronous iteration

2. Rest operator

3. Promise.prototype.finally

ES10 (ECMAScript 2019)

1. Optional Catch Binding

2. Object.fromEntries()

3. Array.flat()

4. Array.flatMap()

5-6. String.trimStart() & String.trimEnd()

String.trimStart()

String.trimEnd()

7. globalThis Object

ES11 (ECMAScript 2020)

1. Nullish coalescing

Đầu tiên phải nhắc đến nullish coalescing hay toán tử ??.
Theo định nghĩa của MDN, ?? là một toán tử logic sẽ trả về vế phải nếu vế trái là null hoặc undefined. Do đó bạn có thể dùng nó để short-circuit như thế này.

1. Optional Chaining ?

Trước đây việc truy cập vào các key của object sẽ bị lỗi nếu key đó không tồn tại, hoặc cách tốt hơn là trước khi truy cập phải kiểm tra key đó có tồn tại hay không. Nhưng với ES11 thì bạn có thể xử lý đơn giản bằng toán tử ?.

2. Private fields

Bằng cách thêm # vào trước tên thuộc tính hay phương thức, chúng sẽ chỉ có thể được truy cập từ bên trong class đó mà thôi.

3. BigInt

BigInt là một đối tượng built-in object mới được ra mắt trong ES11, dùng để biểu diễn các số nguyên lớn hơn 2 ^ (53) –1. Trong Javascript có đối tượng Number rồi, nhưng nó bị giới hạn trong phạm vi quá hẹp, vì vậy BigInt ra đời nhằm giải quyết vấn đề này.

Hãy xem giới hạn giá trị của Number:

Ở ví dụ thứ 3 dữ liệu quá lớn, vì vậy ta có thể giải quyết bằng cách sử dụng BigInt để thay thế.

Kết Luận

Tuy là kết luận rồi nhưng còn một số tính năng nữa của ES6 đến ES11 mình chưa liệt kê hết ở đây, các bạn hãy tìm hiểu thêm nhé. Kể từ ES7 trở đi thì những cập nhật chỉ mang tính bổ sung nhỏ, khác hoàn toàn với ES6 nên rất dễ dàng trong việc nâng cập kiến thức. Hãy đón nhận những bài viết tếp theo của mình nhé.

Xin cảm ơn !

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo