在逻辑判断中, 判断条件可以放一些变量, 这些变量会被隐式转换成Boolean值,例如
const arg1 = 123
if (arg1) {
console.log(arg1) // 123
}
转换规则如下:
- 直观上为"空"的值 (如0,空字符串,null,undefined和NaN)将变为false
- 其他值变成true
显示转换和隐式转换一样, 都适用于上面的规则
注意 包含0的字符串"0" 是true
在JavaScript中非空的字符串 总是为true
在JavaScript中,以下值被认为是假值(false values):
- false:布尔值 false
- 0:数值 0
- -0:数值 -0
- 0n:BigInt 值 0n
- “”:空字符串
- null:一个空对象引用
- undefined:未定义的变量或属性
- NaN:非数值
if (0) {
// 这里的代码不会被执行
}
if ("") {
// 这里的代码不会被执行
}
if (null) {
// 这里的代码不会被执行
}
if (undefined) {
// 这里的代码不会被执行
}
if (NaN) {
// 这里的代码不会被执行
}