Trong JavaScript, null
, undefined
, và undeclared
là ba khái niệm khác nhau liên quan đến biến hoặc giá trị. Mỗi khái niệm có những đặc điểm riêng, và hiểu được sự khác biệt giữa chúng là rất quan trọng khi làm việc với JavaScript. Dưới đây là giải thích chi tiết:
undefined
undefined
là giá trị mặc định mà JavaScript gán cho một biến khi biến đó đã được khai báo nhưng chưa được gán giá trị. Nó cũng có thể được trả về khi truy cập vào một thuộc tính không tồn tại của một đối tượng hoặc không truyền đối số cho một hàm mà hàm đó yêu cầu.
Đặc điểm:
undefined
.undefined
là một kiểu dữ liệu trong JavaScript.undefined
.Ví dụ:
let x; console.log(x); // undefined let obj = {}; console.log(obj.name); // undefined
null
null
là một giá trị rỗng (empty) hoặc không có giá trị (no value). Nó thường được sử dụng khi muốn cố ý chỉ định rằng một biến không có giá trị hoặc cần phải khởi tạo biến mà không có giá trị ngay lập tức. Không giống như undefined
, null
thường được gán thủ công bởi lập trình viên.
Đặc điểm:
null
là một giá trị được lập trình viên cố ý gán để chỉ rằng không có giá trị.null
là một đối tượng trong JavaScript (kiểu dữ liệu object
).Ví dụ:
let y = null; console.log(y); // null
undeclared
undeclared
đề cập đến một biến chưa được khai báo. Nếu cố gắng truy cập một biến chưa được khai báo, JavaScript sẽ ném ra lỗi tham chiếu (ReferenceError). Điều này khác với undefined
, nơi biến đã được khai báo nhưng chưa có giá trị.
Đặc điểm:
var
, let
, hoặc const
để khai báo biến trước khi truy cập.Ví dụ:
console.log(z); // ReferenceError: z is not defined
Khái Niệm | Đã Khai Báo | Đã Gán Giá Trị | Giá Trị | Khi Truy Cập |
---|---|---|---|---|
undefined | Có | Chưa gán giá trị | undefined | Không có lỗi |
null | Có | Có, cố ý gán | null | Không có lỗi |
undeclared | Không | Không | Không tồn tại | Lỗi ReferenceError |
// undefined let a; console.log(a); // undefined // null let b = null; console.log(b); // null // undeclared console.log(c); // ReferenceError: c is not defined
undefined
: Mặc định khi biến được khai báo nhưng chưa có giá trị.null
: Giá trị rỗng do lập trình viên cố ý gán để biểu thị “không có giá trị”.undeclared
: Biến chưa được khai báo, khi truy cập sẽ gây lỗi.Hiểu sự khác biệt này giúp bạn tránh các lỗi phổ biến và quản lý dữ liệu hiệu quả hơn trong JavaScript.