假值
假值(falsy,有时写为 falsey)是在布尔上下文中认定为 false 的值。
JavaScript 在需要用到布尔类型值的上下文中使用类型转换将值转换为布尔值,例如条件语句和循环语句。
下列表格提供了 JavaScript 的所有假值。
值 | 类型 | 描述 |
---|---|---|
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 对象是内置的 document.all 。 |
null
和 undefined
也都是空值。
示例
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