假值

Falsy(有时也写作 falsey)值是指在 布尔 上下文中被认为是假的值。

JavaScript 在需要布尔值的上下文(例如条件语句循环)中,使用类型转换将任何值强制转换为布尔值。

下表提供了 JavaScript 中 Falsy 值的完整列表:

类型 描述
null Null 关键字 null — 任何值的缺失。
undefined Undefined undefined — 原始值。
false Boolean 关键字 false
NaN Number NaN — 非数字。
0 Number Number 零,也包括 0.00x0 等。
-0 Number Number 负零,也包括 -0.0-0x0 等。
0n BigInt BigInt 零,也包括 0x0n 等。注意,没有 BigInt 负零 — 0n 的负值仍然是 0n
"" String 空的 字符串 值,也包括 ''``
document.all Object JavaScript 中唯一一个 Falsy 对象是内置的 document.all

nullundefined 也是 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

另见