Cảm ơn bạn!
Sự khác biệt giữa undefined vs null JavaScript thông qua ví dụ đơn giản
Trong JavaScript hay các ngôn ngữ khác, undefined và null là hai giá trị rất khác nhau. Trong bài viết này mình xin giải thích những điểm khác biệt giữa undefined và null, cách sử dụng chúng thông qua các ví dụ cụ thể nhé🥰.
Undefined trong JavaScript là gì?
Undefined trong Javascript các bạn có thể hiểu là một biến đã được khai báo nhưng chưa được gán giá trị.
Dưới đây là một ví dụ:
let website;
console.log(website); // undefinedNhư các bạn thấy ở trên, chúng ta đã declared một biến website và chưa gán giá trị cho nó. Chính vì thế, biến này là undefined.
Chúng ta có thể check biến trên thuộc type nào bằng cách sử dụng typeof:
console.log(typeof website); // undefinedChúng ta cũng thường hay bắt gặp undefined khi truy xuất các thuộc tính không tồn tại trong một object:
const website = {'name': 'homiedev.com'};
console.log(website.name); // homiedev.com
console.log(website.url); // undefinedTrong trường hợp chúng ta cố gắng truy xuất một biến mà chưa được khai báo, chúng ta sẽ nhận được lỗi ReferenceError. Vậy biến phải được khai báo và chưa gán giá trị sẽ là undefined.
console.log(post); // Uncaught ReferenceError: post is not definedLỗi
post is not definedkhác hoàn toàn vớiundefined.
Null trong JavaScript là gì?
Null trong JavaScript các bạn có thể hiểu là empty. Null là một giá trị chúng ta dùng để gán cho biến, tùy từng trường hợp các bạn muốn gán giá trị khởi tạo cho một biến, chúng ta có thể dùng null.
Khi sử dụng null nghĩa là biến được nhận một giá trị khởi tạo, còn undefined thì không có ^^.
let name = null;
console.log(name); // nullBây giờ chúng ta thử dùng typeof để xem type của name thử nhé:
let name = null;
console.log(typeof name);Bạn đoán thử xem type chúng ta nhận được ở đây là gì? Ồ 🦭 khá thú vị khi type chúng ta nhận được là object.
console.log(typeof name); // objectCác bạn có thể nhầm lẫn khi
typeof namelà object nhưng thực ranulllà mộtprimitive valuenhưundefinedvà cả hai đều là falsey values. Các bạn có thể tìm hiểu về vấn đề này tại: Why is null an object.
So sánh undefined và null
Chúng ta có thể nhận biết 2 giá trị giống hay khác nhau thông qua ===. Cùng so sách thử undefined và null nhé:
console.log(undefined === null) // false
console.log(undefined !== null) // trueTránh sử dụng
==để kiểm tra giữa hai giá trị.
Kiểm tra undefined và null
Chúng ta sẽ sử dụng strict equality operator (===) để kiểm tra xem một biến là undefined hay null.
let website, author = null;
if (website === undefined) {
console.log(`website is undefined`);
}
if (author === null) {
console.log(`The value of author is null`);
}Vì undefined và null đều là falsy values, ta có thể kiểm tra như sau:
if (!author && !website) {
// ...
}Summary
Sau đây mình xin tóm gọn lại một số điểm khác biệt, giống nhau (bonus 😁) giữa undefined và null:
undefinedvànulllà các primitive values và chúng là các giá trị falsy.undefinedlà khi một biến được khai báo nhưng không được gán với bất kỳ giá trị nào.nullthường được gán cho biến khi chúng ta muốn giá trị khởi tạo làempty.undefinedvànullkhông bằng nhau (!==).
Kết luận
Cảm ơn các bạn đã đọc bài viết này, hi vọng bài viết sẽ giúp ích cho các bạn.
Chúc các bạn học tốt ^^.
Một số bài viết nên đọc:
