Trong JavaScript, null và undefined đều biểu thị sự vắng mặt của giá trị, nhưng chúng có những ý nghĩa và cách sử dụng khác nhau. undefined được tự động gán cho các biến chưa được khởi tạo, trong khi null là một giá trị rỗng được lập trình viên gán có chủ đích. Hiểu rõ sự khác biệt giữa hai khái niệm này là điều quan trọng để viết mã hiệu quả và tránh lỗi trong quá trình phát triển.
undefined trong JavaScriptundefined biểu thị rằng một biến đã được khai báo nhưng chưa được gán giá trị. Điều này cũng xảy ra khi bạn truy cập vào một thuộc tính hoặc biến mà không có giá trị.
undefinedKhi khai báo biến nhưng chưa gán giá trị:
let x; console.log(x); // undefined
Một hàm không trả về giá trị cụ thể sẽ trả về undefined:
function test() {}
console.log(test()); // undefined
Truy cập thuộc tính không tồn tại trong đối tượng sẽ trả về undefined:
let obj = {};
console.log(obj.property); // undefined
null trong JavaScriptnull là một giá trị đặc biệt biểu thị rằng biến hoặc đối tượng có “giá trị rỗng” hoặc “không có giá trị” theo cách có chủ ý. Điều này có nghĩa là bạn đã gán null cho biến để cho biết rằng biến đó hiện không có giá trị.
nullKhi muốn khởi tạo một biến với giá trị rỗng:
let y = null; console.log(y); // null
Dùng null khi cố ý gán giá trị trống cho một biến để sau này có thể gán giá trị khác:
let person = {
name: "Anh",
age: null
};
null và undefinedundefined được JavaScript tự động gán cho các biến, thuộc tính hoặc hàm mà không có giá trị cụ thể. Trong khi đó, null phải được lập trình viên gán thủ công khi muốn chỉ định rằng một biến hoặc đối tượng không có giá trị.
undefined có kiểu là "undefined":
console.log(typeof undefined); // "undefined"
null có kiểu là "object":
console.log(typeof null); // "object"
== và ===Khi sử dụng toán tử lỏng ==, null và undefined được coi là bằng nhau:
console.log(null == undefined); // true
Tuy nhiên, khi sử dụng toán tử nghiêm ngặt ===, chúng không được coi là giống nhau vì khác loại dữ liệu:
console.log(null === undefined); // false
null và undefined?Sử dụng undefined khi biến chưa được khởi tạo hoặc khi cần kiểm tra xem biến đã được gán giá trị hay chưa. Sử dụng null khi bạn cần khởi tạo biến hoặc đối tượng với một giá trị rỗng có chủ đích, và sau đó sẽ gán giá trị thực cho biến hoặc thuộc tính này.
Ví dụ khi làm việc với API, bạn có thể gặp null để chỉ sự vắng mặt của dữ liệu trong cơ sở dữ liệu, trong khi undefined có thể xuất hiện khi một biến chưa được khởi tạo hoặc thuộc tính không tồn tại.
null và undefined đều thể hiện sự vắng mặt của giá trị, nhưng null là giá trị được gán có chủ ý bởi lập trình viên, còn undefined xuất hiện khi biến chưa được khởi tạo hoặc không có giá trị.