假值
Falsy(有时也写作 falsey)值是指在 布尔 上下文中被认为是假的值。
JavaScript 在需要布尔值的上下文(例如条件语句和循环)中,使用类型转换将任何值强制转换为布尔值。
下表提供了 JavaScript 中 Falsy 值的完整列表:
| 值 | 类型 | 描述 |
|---|---|---|
| null | Null | 关键字 null — 任何值的缺失。 |
| undefined | Undefined | undefined — 原始值。 |
false |
Boolean | 关键字 false。 |
| NaN | Number | NaN — 非数字。 |
0 |
Number | Number 零,也包括 0.0、0x0 等。 |
-0 |
Number | Number 负零,也包括 -0.0、-0x0 等。 |
0n |
BigInt | BigInt 零,也包括 0x0n 等。注意,没有 BigInt 负零 — 0n 的负值仍然是 0n。 |
"" |
String | 空的 字符串 值,也包括 '' 和 ``。 |
document.all |
Object | JavaScript 中唯一一个 Falsy 对象是内置的 document.all。 |
值 null 和 undefined 也是 nullish(空值)。
示例
JavaScript 中 falsy 值的例子(在布尔上下文中被强制转换为 false,从而 跳过 if 块)
js
if (false) {
// Not reachable
}
if (null) {
// Not reachable
}
if (undefined) {
// Not reachable
}
if (0) {
// Not reachable
}
if (-0) {
// Not reachable
}
if (0n) {
// Not reachable
}
if (NaN) {
// Not reachable
}
if ("") {
// Not reachable
}
逻辑与运算符,&&
如果第一个对象是 falsy 值,则返回该对象。
js
console.log(false && "dog");
// ↪ false
console.log(0 && "dog");
// ↪ 0