Boolean(undefined) trả về false. Cùng nhóm "falsy values" với: null, false, 0, -0, 0n (BigInt), "" (empty string), NaN.
Ví dụ các giá trị falsy
<script>
// Tạo hole trong mảng → undefined
const arr = [1,2,3,4];
arr[6] = 7; // index 4,5 là hole → undefined
const x = arr[4];
document.write(Boolean(x) + '<br>'); // false (undefined)
document.write(Boolean(undefined) + '<br>'); // false
document.write(Boolean(null) + '<br>'); // false
document.write(Boolean(NaN) + '<br>'); // false
document.write(Boolean('') + '<br>'); // false
document.write(Boolean(false) + '<br>'); // false
document.write(Boolean(0) + '<br>'); // false
</script>
Kết quả
false false false false false false false
Tất cả giá trị khác là TRUTHY
- Object/Array rỗng:
{},[]→true. - Function:
function(){}→true. - String non-empty:
"0","false"," "→true. - Số non-zero:
1,-1,3.14→true.
Áp dụng thực tế
// Default parameter pattern (trước ES6)
function greet(name) {
name = name || 'Guest'; // undefined → 'Guest'
// hoặc Boolean check
if (!name) name = 'Guest';
}
// Optional chaining + nullish coalescing (ES2020) — tốt hơn
function greetModern(name) {
const displayName = name ?? 'Guest'; // Chỉ null/undefined mới fallback
// Không dùng || vì '' (empty string) cũng falsy nhưng có thể hợp lệ
}
Bảng Falsy Values
| Giá trị | Boolean() | Ghi chú |
|---|---|---|
undefined | false | Biến khai báo không gán giá trị |
null | false | Không có giá trị cố ý |
false | false | Boolean false |
0, -0, 0n | false | Zero number/BigInt |
"" | false | Empty string |
NaN | false | Not a Number |
| Others | true | Tất cả object, array, function, non-empty string, non-zero number |