Dưới đây là sáu tính năng có thể giúp cuộc sống của bạn dễ dàng hơn khi viết mã bằng Javascript.

Image from https://unsplash.com/

Xin lưu ý: các tính năng này vẫn chưa là tiêu chuẩn chính thức, nhưng chúng được hỗ trợ rộng rãi trong các trình duyệt hiện đại.

Tìm hiểu thêm về khóa học javaScript tại Techmaster

1. Nullish Coalescing Operator: ??

Thao tác || thường được dùng để đặt giá trị mặc định, nhưng nó có lỗ hổng nếu vế trái là falsey (eg. Chuỗi rỗng, 0, chưa xác định, null, false, NaN) thì nó sẽ vẫn dùng giá trị mặc định. Nullish coalescing? Thêm khả năng kiểm tra các giá trị nullish, null) thay vì các giá trị falsey.

false || 'default' // return 'default'
false ?? 'default' // return false

NaN || 'default' // return 'default'
NaN ?? 'default' // return NaN

undefined || 'default' // return 'default'
undefined ?? 'default' // return 'default'

null || 'default' // return 'default'
null ?? 'default' // return 'default'

2. Exponentiation Operator: **

Thay vì sử dụng Math.pow (x, y), bây giờ bạn có thể sử dụng x ** y.

4 ** 2 // return 16

3. Optional Chaining Operator: ?.

Toán tử chuỗi tùy chọn cho phép bạn truy cập các thuộc tính của các giá trị không xác định / null tiềm năng mà không có một ngoại lệ. Nó cho phép bạn truy cập vào các thuộc tính của đối tượng lồng nhau mà không cần lo lắng nếu thuộc tính đó có tồn tại hay không. Nó hoạt động với hàm gọi hoặc mảngCác ký tự số lớn rất khó đối với người phân tích cú pháp nhanh,. Nếu giá trị không tồn tại, không xác định sẽ được trả về.

const myobj = {x: {y: 1}}
myobj.x.y // return 1
myobj.x?.y // return 1

myobj.t.z // raise Exception TypeError
myobj.t?.z // return undefined
myobj.t?.z?.a?.b?.c // return undefined

myobj.t?.not_exist_func?.() // return undefined

myobj?.my_fake_array?.map(item => item+1) // return undefined

4. Numeric Separators: _

Các ký tự số lớn rất khó đối với người phân tích cú pháp nhanh, đặc biệt là khi có nhiều chữ số lặp lại. Để cải thiện khả năng đọc, bạn có thể sử dụng dấu gạch dưới làm dấu phân cách trong các ký tự số.

let value = 1000000000000
let value = 1_000_000_000_000 // same value of 1000000000000

5. BigInt

Số tối đa bạn có thể lưu trữ dưới dạng số nguyên trong javascript là pow(2, 53) - 1. Bigint thực sự cho phép bạn đi xa hơn thế.

let mymax = Number.MAX_SAFE_INTEGER // return 9007199254740991
++mymax // return 9007199254740992
++mymax // return 9007199254740992 (that’s the same as above!)
let mybig = BigInt(9007199254740991);
++mybig // return 9007199254740992n
++mybig // return 9007199254740993n

6. Optional Catch Binding

Nếu bạn không quan tâm đến lỗi trong ngoại lệ, bây giờ bạn có thể bỏ qua ràng buộc từ mệnh đề catch (điều đó không thực sự được khuyến khích)

let jsonData;
try {
    jsonData = JSON.parse(str);
} catch (err) {
    jsonData = DEFAULT_DATA;
}
// new way
try {
    jsonData = JSON.parse(str);
} catch {
    jsonData = DEFAULT_DATA;
}

Bài viết gốc tại đây