Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

JavaScript có bao nhiêu giá trị "nothing"?

JavaScript có **2 giá trị đại diện cho "rỗng/không có": null và undefined**. Chúng khác nhau về ngữ nghĩa.

undefined

  • Biến khai báo nhưng **chưa gán giá trị**.
  • Function không return → trả undefined.
  • Property không tồn tại trên object.
  • typeof undefined === "undefined"
let a;
function b() {}
console.log(a);    // undefined
console.log(b());  // undefined

null

  • Giá trị **gán chủ động** để biểu diễn "không có giá trị / intentionally empty".
  • typeof null === "object" (bug lịch sử JS).
let a = null;
function b() { return null; }
console.log(a); // null
console.log(b()); // null

So sánh

null == undefined   // true (loose equality)
null === undefined  // false (strict equality)

Best practice: Dùng undefined cho "chưa khởi tạo", null cho "đã khởi tạo nhưng rỗng ý định".