假值

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

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

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

说明
false 关键字 false
0 Number 零值(同理,0.00x0 也为零)。
-0 Number 负零值(同理,-0.0-0x0 也为负零)。
0n BigInt 零值(0x0n 同理)。注意没有 BigInt 负零值——0n 的相反数还是 0n
""''`` 字符串值。
null null 值——任意值缺失。
undefined undefined 值——初始值。
NaN NaN 值——非数值。
document.all 当且仅当对象具有 [[IsHTMLDDA]] 内部插槽时,它才是假值。这个槽只存在于 document.all 中,不能用 JavaScript 来设置。

示例

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

参见