假值
假值(有时写成falsey)是在布尔上下文中被视为假的值。
JavaScript使用类型转换将任何值强制转换为布尔值,在需要布尔值的环境中,例如条件语句和循环。
下表提供了JavaScript假值的完整列表
值 | 类型 | 描述 |
---|---|---|
null | 空 | 关键字null ——没有任何值的表示。 |
undefined | 未定义 | undefined ——原始值。 |
false |
布尔值 | 关键字false 。 |
NaN | 数字 | NaN ——非数字。 |
0 |
数字 | 数字零,包括0.0 、0x0 等。 |
-0 |
数字 | 负零,包括-0.0 、-0x0 等。 |
0n |
BigInt | 大整数零,包括0x0n 等。请注意,没有大整数负零——0n 的负数是0n 。 |
"" |
字符串 | 空字符串,包括'' 和`` 。 |
document.all |
对象 | JavaScript中唯一一个假值对象是内置的document.all 。 |
null
和undefined
也是空值。
示例
JavaScript中假值的示例(在布尔上下文中强制转换为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
}
逻辑与运算符,&&
如果第一个对象是假值,则返回该对象
js
console.log(false && "dog");
// ↪ false
console.log(0 && "dog");
// ↪ 0