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.

  • 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/

stackjava.com