Phân biệt sự khác nhau giữa null với undefined – Javascript.
Null và Undefined là gì?
Với những bạn đang lập trình Java hay C/C++… Chắc hẳn không còn lạ gì với kiểu dữ liệu null vậy còn undefine là gì?
Cả Null và Undefine đều là 2 kiểu dữ liệu biểu thị rằng biến/đối tượng không mang một giá trị nào cả. Nhưng cách dùng và so sánh lại không giống nhau.
- Undefined
Trong đó Undefine là giá trị mặc đinh của tất cả các biến/thuộc tính của đối tượng trong JavaScript. Nếu bạn không gán giá trị cho biến thì nó sẽ mặc định là undefined.
Ví dụ:
var name = undefined; var age; console.log('name: ' + name); console.log('age: ' + age);
Kết quả sẽ là:
name: undefined age: undefined
- Null
Còn null có thể coi là một kiểu đối tượng. Một biến/một thuộc tính của đối tượng chỉ có thể có giá trị bằng null khi nó được gán = null.
var address = null; console.log('address: ' + address);
Kết quả sẽ là:
address: null
- So sánh Null với Undefined
Null là kiểu đối tượng còn Undefined thì không:
console.log(typeof null); console.log(typeof undefined);
Kết quả:
object undefined
Vì Null và Undefine đều có nghĩa là không mang giá trị nên khi so sánh ‘==’ thì nó sẽ trả về true, tuy nhiên nó là 2 loại khác nhau nên khi so sánh ‘===’ nó sẽ trả về false.
Ví dụ:
var name = undefined; var address = null; console.log(name == address); console.log(name === address);
Kết quả:
true false
Check null và undefined:
Khi xử lý dữ liệu chúng ta phải check cả null và undefined để tránh lỗi do dó mọi người nên tạo chung 1 hàm để check xem một biến có phải là null hoặc undefined không thì sau đó mới xử lý tiếp.
Ví dụ:
function isNullOrUndefined(value) { return value === undefined || value === null; // tương đương với return value == null; } var a = null; if (!isNullOrUndefined(a)){ console.log(a); } else { console.log('data is null or undefined'); }
References:
https://www.ajaymatharu.com/difference-between-undefined-and-null/