Junior #es2020#operators#null-safety
Optional chaining `?.` và nullish coalescing `??` khác gì `&&` và `||`?
⚡ Trả lời nhanh
`a?.b` trả undefined nếu `a` là null/undefined thay vì ném lỗi. `a ?? b` chỉ dùng `b` khi `a` là null/undefined, còn `a || b` dùng `b` với mọi giá trị falsy (0, "", false). Vì vậy `??` an toàn hơn để đặt giá trị mặc định.
Ví dụ
main.js · sửa được
- Optional chaining có short-circuit: nếu vế trái nullish thì phần còn lại của chuỗi không được đánh giá.
- Các dạng:
a?.b,a?.[key],a?.(). ??=,||=,&&=(ES2021) là dạng gán tương ứng.