假值

假值falsy,有时写为 falsey)是在布尔上下文中认定为 false 的值。

JavaScript 在需要用到布尔类型值的上下文中使用类型转换将值转换为布尔值,例如条件语句循环语句

下列表格提供了 JavaScript 的所有假值。

类型 描述
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 对象是内置的 document.all

nullundefined 也都是空值

示例

JavaScript 中值的例子(在布尔值上下文中被转换为 false,从而绕过if 代码块):

js
if (false) {
  // 执行不到这里
}

if (null) {
  // 执行不到这里
}

if (undefined) {
  // 执行不到这里
}

if (0) {
  // 执行不到这里
}

if (-0) {
  // 执行不到这里
}

if (0n) {
  // 执行不到这里
}

if (NaN) {
  // 执行不到这里
}

if ("") {
  // 执行不到这里
}

逻辑与操作符 &&

如果第一个对象是假值,则返回那个对象:

js
console.log(false && "dog");
// ↪ false

console.log(0 && "dog");
// ↪ 0

参见