</>
⌕
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.
🃏 Ôn bằng flashcard