Cả hai đều biểu diễn "không có giá trị," nhưng với ý định và nguồn gốc khác nhau.
Cả hai đều biểu diễn "không có giá trị," nhưng với ý định và nguồn gốc khác nhau.
undefined: sự vắng mặt của một giá trị, thường do JavaScript engine thiết lập — một biến đã khai báo nhưng chưa gán, một thuộc tính object bị thiếu, một tham số hàm bạn không truyền, hoặc một hàm không có return.null: một giá trị "rỗng" có chủ đích mà bạn gán để nói "cố ý không có gì ở đây."let a; // undefined — đã khai báo, chưa gán
const obj = {};
obj.missing; // undefined — thuộc tính không tồn tại
function f() {}
f(); // undefined — không return
const b = null; // null — bạn chọn để làm rỗng nó
null == undefined; // true — loose equality coi chúng bằng nhau
null === undefined; // false — khác kiểu
typeof undefined; // "undefined"
typeof null; // "object" (lỗi lịch sử)
const value = input ?? "default"; // mặc định khi LÀ null HOẶC undefined
user?.address?.city; // optional chaining — undefined nếu bất kỳ mắt xích nào là null/undefined
Dùng null để cố ý xóa một giá trị (ví dụ "không có user nào được chọn"), và coi undefined là "chưa được thiết lập." Các toán tử ?? (nullish coalescing) và ?. (optional chaining) xử lý cả hai cùng một lúc, đó là lý do chúng được dùng rộng rãi.
Thư viện câu hỏi phỏng vấn IT với đáp án chi tiết — từ Junior đến Senior.
Ủng hộ