布尔类型Boolean的转换

96 阅读1分钟

在逻辑判断中, 判断条件可以放一些变量, 这些变量会被隐式转换成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) {
  // 这里的代码不会被执行
}