假值
假值(falsy,有时写为 falsey)是在 Boolean 上下文中认定为 false 的值。
JavaScript 在需要用到布尔类型值的上下文中使用强制类型转换将值转换为布尔值,例如条件语句 (en-US)和循环语句 (en-US)。
下列表格提供了 JavaScript 的所有假值。
值 | 说明 |
---|---|
false |
关键字 false 。 |
0 |
Number 零值(同理,0.0 、0x0 也为零)。 |
-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