Để kiểm tra biến undefined, dùng các cách sau. Kết quả false nghĩa là biến chưa định nghĩa. Ví dụ biến points = 100 → True.
Ví dụ
<html>
<body>
<script>
var points = 100;
if (points) {
document.write("True");
} else {
document.write("False");
}
</script>
</body>
</html>
Phân biệt: Undeclared vs Undefined
| Trạng thái | Mô tả | Kiểm tra an toàn |
|---|---|---|
| Undeclared (chưa khai báo) | Biến không tồn tại trong scope. typeof x === "undefined" trả true. if (x) throw ReferenceError. | typeof x !== "undefined" |
| Declared but Uninitialized (khai báo không gán giá trị) | var x; → x === undefined là true. | x === undefined hoặc typeof x !== "undefined" |
| Initialized (đã gán giá trị) | Biến có giá trị cụ thể (có thể là null, 0, ""). | x != null (bắt null & undefined) |
Các phương pháp kiểm tra
// 1. typeof - an toàn nhất cho undeclared
if (typeof myVar === "undefined") {
console.log("Chưa khai báo HOẶC khai báo nhưng chưa gán giá trị");
}
// 2. So sánh trực tiếp (chỉ dùng khi chắc chắn biến đã khai báo)
if (myVar === undefined) {
console.log("Giá trị là undefined");
}
// 3. Nullish coalescing (ES2020) - kiểm tra null/undefined
const value = myVar ?? "default"; // nếu myVar là null/undefined → "default"
// 4. Optional chaining (ES2020) - cho object property
const val = obj?.prop?.nested; // undefined nếu bất kỳ link nào missing
Lưu ý
Ví dụ gốc dùng if (points) kiểm tra truthy. Nếu points = 0 → ghi "False" dù biến đã định nghĩa. Cần chọn phương pháp phù hợp ngữ cảnh.