JavaScript在需要用到布尔类型值的上下文时并不只判断true/false,代码中通常会判断0、空字符串等情况,例如
let a = '';
if (a) {
console.log('判断为 true')
} else {
console.log('判断为 false')
}
// 输出结果
判断为 true
这就不得不提到truthy、falsy了。从单词含义也可看出:
JavaScript中只有8个falsy值,除假值之外的皆为真值
| false | false关键字 |
|---|---|
| 0 | 数值zero |
| -0 | 数值负zero |
| 0n | 当 BigInt 作为布尔值使用时, 遵从其作为数值的规则. 0n 是 falsy 值. |
| "", '', `` | 空字符串 (字符串的长度为零). JavaScript 中的字符串可用双引号 "" , 单引号 '', 或 模板字面量 `` 定义。 |
| null | null - 缺少值 |
| undefined | undefined - 原始值 |
| NaN | NaN - 非数值 |