hoc-lap-trinh-1

nullundefined là hai giá trị đại diện cho “không có giá trị” trong JavaScript và TypeScript, nhưng chúng có những ý nghĩa và cách sử dụng khác nhau.

So sánh nullundefined

  1. undefined:
    • Ý nghĩa: Biểu thị rằng một biến đã được khai báo nhưng chưa được gán giá trị.
    • Nguồn gốc: Đây là giá trị mặc định của các biến và thuộc tính của đối tượng chưa được khởi tạo.
    • Kiểu dữ liệu: undefined là một kiểu dữ liệu riêng biệt.
let x;
console.log(x); // undefined

let obj = {};
console.log(obj.prop); // undefined

null:

  • Ý nghĩa: Biểu thị sự vắng mặt cố ý của bất kỳ giá trị đối tượng nào. Đây là cách để đặt giá trị của một biến thành không có giá trị hoặc “trống”.
  • Nguồn gốc: null thường được sử dụng để làm trống hoặc xóa giá trị của một biến hoặc thuộc tính.
  • Kiểu dữ liệu: null là một giá trị đặc biệt của kiểu object.
let y = null;
console.log(y); // null

let obj = { prop: null };
console.log(obj.prop); // null

Khi nào sử dụng nullundefined

Sử dụng undefined

  • Khi một biến chưa được khởi tạo hoặc một thuộc tính không tồn tại.
  • Khi muốn kiểm tra xem một biến hoặc thuộc tính có giá trị hay không.
let x;
if (x === undefined) {
    console.log('x chưa được khởi tạo');
}

function foo() {
    return;
}
console.log(foo()); // undefined

Sử dụng null

  • Khi muốn biểu thị sự vắng mặt cố ý của giá trị.
  • Khi cần đặt một biến hoặc thuộc tính thành “trống” hoặc “không có giá trị”.
let y = null;
if (y === null) {
    console.log('y đã được gán giá trị null');
}

let person = { name: "Alice", age: 30 };
person.age = null; // Biểu thị rằng giá trị tuổi không còn tồn tại

So sánh nullundefined trong các phép toán

  • Bằng giá trị (==): nullundefined được coi là bằng nhau khi so sánh bằng giá trị nhưng không bằng các giá trị khác.
console.log(null == undefined); // true
console.log(null == 0); // false
console.log(undefined == 0); // false

Bằng giá trị và kiểu (===): nullundefined không bằng nhau khi so sánh cả giá trị và kiểu.

console.log(null === undefined); // false

Tóm lại

  • undefined thường được sử dụng để kiểm tra biến hoặc thuộc tính chưa được khởi tạo.
  • null được sử dụng để biểu thị rằng biến hoặc thuộc tính cố ý không có giá trị.

Việc sử dụng đúng nullundefined sẽ giúp mã của bạn rõ ràng và dễ bảo trì hơn.

By hoadv