Null là một kiểu nguyên thủy trong JavaScript. Điều này có nghĩa là bạn phải có khả năng kiểm tra xem một biến có null
với typeof()
phương pháp. Nhưng thật không may, điều này trả về “đối tượng” do một lỗi lịch sử không thể sửa được.
let userName = null;
console.log(typeof(userName)); // object
Vì vậy, làm thế nào bây giờ bạn có thể kiểm tra null? Bài viết này sẽ hướng dẫn bạn cách kiểm tra giá trị rỗng, cùng với sự khác biệt giữa loại JavaScript null và không xác định.
Null vs Undefined trong JavaScript
Null và undefined rất giống nhau trong JavaScript và đều là các kiểu nguyên thủy.
Một biến có kiểu null
nếu nó cố ý chứa giá trị của null
. Ngược lại, một biến có kiểu undefined
khi bạn khai báo nó mà không bắt đầu một giá trị.
// This is null
let firstName = null;
// This is undefined
let lastName;
Không xác định hoạt động tốt vì khi bạn kiểm tra loại bằng cách sử dụng typeof()
phương pháp, nó sẽ trở lại undefined
:
let lastName;
console.log(typeof(lastName)); // undefined
Bây giờ chúng ta hãy xem hai cách chính mà bạn có thể kiểm tra null
và làm thế nào nó liên quan đến undefined
.
Cách kiểm tra Null trong JavaScript bằng toán tử đẳng thức
Các toán tử đẳng thức cung cấp cách tốt nhất để kiểm tra null
. Bạn có thể sử dụng toán tử đẳng thức lỏng/kép (==
) hoặc toán tử nghiêm ngặt/ba đẳng thức (===
).
Cách sử dụng toán tử đẳng thức lỏng lẻo để kiểm tra null
Bạn có thể sử dụng toán tử đẳng thức lỏng lẻo để kiểm tra null
giá trị:
let firstName = null;
console.log(firstName == null); // true
Tuy nhiên, điều này có thể phức tạp vì nếu biến không được xác định, nó cũng sẽ trả về true
bởi vì cả hai null
và undefined
lỏng lẻo bằng nhau.
let firstName = null;
let lastName;
console.log(firstName == null); // true
console.log(lastName == null); // true
console.log(firstName == undefined); // true
console.log(lastName == undefined); // true
console.log(firstName == lastName); // true
console.log(null == undefined); // true
Ghi chú: Điều này có thể hữu ích khi bạn muốn kiểm tra xem một biến không có giá trị hay không vì khi một biến không có giá trị, nó có thể null
hoặc undefined
.
Nhưng giả sử bạn chỉ muốn kiểm tra null
– thì bạn có thể sử dụng toán tử đẳng thức nghiêm ngặt.
Cách sử dụng toán tử đẳng thức nghiêm ngặt để kiểm tra null
Toán tử đẳng thức nghiêm ngặt, so với toán tử đẳng thức lỏng lẻo, sẽ chỉ trả về true
khi bạn có chính xác một null
giá trị. Nếu không, nó sẽ trở lại false
(điêu nay bao gôm undefined
).
let firstName = null;
let lastName;
console.log(firstName === null); // true
console.log(lastName === null); // false
console.log(firstName === undefined); // false
console.log(lastName === undefined); // true
console.log(firstName === lastName); // false
console.log(null === undefined); // false
Như bạn có thể thấy, nó chỉ trả về true
khi một biến null được so sánh với null
và một biến không xác định được so sánh với undefined
.
Cách kiểm tra Null trong JavaScript với Object.is()
Phương pháp
Object.is()
là một phương thức ES6 xác định xem hai giá trị có giống nhau hay không. Điều này hoạt động giống như toán tử bình đẳng nghiêm ngặt.
// Syntax
Object.is(value1, value2)
Hãy sử dụng ví dụ trước để xem liệu nó có hoạt động giống như toán tử đẳng thức nghiêm ngặt không:
let firstName = null;
let lastName;
console.log(Object.is(firstName, null)); // true
console.log(Object.is(lastName, null)); // false
console.log(Object.is(firstName, undefined)); // false
console.log(Object.is(lastName, undefined)); // true
console.log(Object.is(firstName, lastName)); // false
console.log(Object.is(null, undefined)); // false
Điều này xảy ra vì nó chỉ trả về true
khi cả hai giá trị đều giống nhau. Điều này có nghĩa là nó sẽ chỉ trở lại true
khi một biến được đặt thành null
được so sánh với null
và một biến không xác định được so sánh với undefined
.
Phần kết luận
Bây giờ bạn đã biết cách tự tin kiểm tra null. Bạn cũng có thể kiểm tra xem một biến có được đặt thành null
hoặc undefined
và bạn biết sự khác biệt giữa toán tử đẳng thức lỏng lẻo và nghiêm ngặt.
Tôi hy vọng nó sẽ có ích. Hãy mã hóa vui vẻ!