Kết quả của các kiểm tra sau cho biết biến có phải undefined. Kết quả false = biến undefined. Ví dụ biến res = 10 → True.
Ví dụ
<html>
<body>
<script>
var res = 10;
if (res) {
document.write("True");
} else {
document.write("False");
}
</script>
</body>
</html>
Các cách kiểm tra chuẩn xác
1. typeof (an toàn nhất)
if (typeof myVar === "undefined") {
// biến 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ỉ khi chắc biến đã khai báo)
if (myVar === undefined) {
// giá trị chính xác là undefined
}
3. Kiểm tra truthy (phổ biến nhưng không chính xác cho 0, "", false)
if (myVar) {
// truthy: không phải false, 0, "", null, undefined, NaN
}
4. Nullish coalescing (??) - ES2020
const value = myVar ?? "default"; // chỉ fallback khi null/undefined
Bảng so sánh
| Giá trị | if (x) | x === undefined | typeof x === "undefined" | x == null | x ?? "d" |
|---|---|---|---|---|---|
undefined | false | true | true | true | "d" |
null | false | false | false | true | "d" |
0 | false | false | false | false | 0 |
"" | false | false | false | false | "" |
false | false | false | false | false | false |
undeclared | ReferenceError | ReferenceError | true | ReferenceError | ReferenceError |
Khuyến nghị
- Kiểm tra biến có tồn tại:
typeof x !== "undefined". - Kiểm tra giá trị null/undefined:
x == nullhoặcx === null || x === undefined. - Default value:
x ?? defaultValue(ES2020). - Tránh
if (x)khi0,"",falselà giá trị hợp lệ.