Đôi khi bạn phải kiểm tra để đảm bảo rằng không có gì thực sự không phải là… không có gì. 😲❗❓
Trong JavaScript, vô giá trị là một kiểu nguyên thủy có chủ ý chứa giá trị null. Không xác định là một kiểu nguyên thủy và đại diện cho một biến bạn khai báo mà không bắt đầu một giá trị.
Vì vậy, null là không có gì và undefined chỉ thiếu một cái gì đó. 🤣

Không siêu hữu ích, tôi biết. Hãy tìm hiểu sâu hơn.
Cách xác định giá trị Null và Undefined
Một ví dụ sẽ giúp ích. Dưới đây chúng tôi khai báo hai biến. Hãy giữ cho nó đơn giản và sử dụng null
và undefined
để so sánh kết quả vì đôi khi chúng bị nhầm lẫn vì những điểm tương đồng của chúng.
let leviticus = null;
// leviticus is null
let dune;
// dune is undefined
leviticus
Là cố ý không có giá trị đối tượng (vô giá trị). Nhưng trái lại dune
được tuyên bố, nhưng nó là vô tình thiếu một giá trị (không xác định).
Cách kiểm tra Null với typeof()
Bạn có thể kiểm tra null với typeof()
toán tử trong JavaScript.
console.log(typeof(leviticus))
// object
console.log(typeof(dune))
// undefined
Thật kỳ lạ, nếu bạn kiểm tra với typeof()
một biến null sẽ trả về object
. Điều này là do một lỗi lịch sử trong JavaScript.
Cách kiểm tra Null với toán tử đẳng thức
Một sự tò mò khác là khi bạn kiểm tra một cách lỏng lẻo sự bằng nhau bằng cách sử dụng gấp đôi ==
, null
và undefined
sẽ trở lại true
.
console.log(leviticus == dune)
// true
console.log(leviticus === dune)
// false
console.log(leviticus == null)
// true (but not as good a habit to use as strict equality shown in next example)
Nhưng khi bạn kiểm tra nghiêm ngặt sự bình đẳng bằng cách sử dụng ba bằng ===
null và undefined sẽ trả về false
.
Điều này là do cả null và undefined đều sai trong JavaScript. Sai có nghĩa là một giá trị được coi là false
khi gặp trong một Boolean (true
hoặc false
) bối cảnh.
JavaScript sử dụng tính năng cưỡng chế để ép buộc các giá trị từ loại này sang loại khác để có thể sử dụng chúng trong ngữ cảnh Boolean.
Nhưng bằng cách kiểm tra nghiêm ngặt sự bằng nhau, bạn có thể thấy rằng chúng thực tế không bằng nhau.
Cách kiểm tra Null với đẳng thức nghiêm ngặt
Cách tốt nhất để kiểm tra null là sử dụng đẳng thức nghiêm ngặt và rõ ràng:
console.log(leviticus === null)
// true
console.log(dune === null)
// false
Cách kiểm tra Null với Object.is()
Phương pháp
Một cách hoàn hảo không kém để kiểm tra null là sử dụng tích hợp sẵn Object.is()
phương pháp:
console.log(Object.is(leviticus, null)
// true
console.log(Object.is(dune, null)
// false
Tóm lược
null
là một loại nguyên thủy của một biến đánh giá sai, có mộttypeof()
của đối tượng và thường được cố ý khai báo lànull
undefined
là một loại nguyên thủy của một biến đánh giá sai, có mộttypeof()
của không xác định và đại diện cho một biến được khai báo nhưng thiếu giá trị ban đầu.null == undefined
đánh giá là đúng bởi vì họ là lỏng lẻo bằng nhau.null === undefined
đánh giá là sai bởi vì chúng không, trong thực tếcông bằng.<null_variable> === null
là cách tốt nhất để kiểm tra nghiêm ngặt cho null.Object.is(<null_variable>,null)
là một cách đáng tin cậy như nhau để kiểm tra null.
Hãy lấy lòng! Như bạn có thể đã biết, có rất nhiều câu hỏi hóc búa trong hệ sinh thái JavaScript như thế này. Nhưng khi bạn chia nhỏ nó ra, bạn có thể tự tin hiểu chúng/

Cảm ơn vì đã đọc!
Tôi hy vọng đây là một sự cố hữu ích cho bạn. Tiếp tục viết mã và tiếp tục hướng về phía trước!
Hãy nói xin chào với tôi trên Twitter: https://twitter.com/EamonnCottrell
Chúc bạn vui vẻ 👋.