STACKJAVA

Phân biệt sự khác nhau giữa null với undefined – Javascript

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.

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

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

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/