JavaScript的真值
原文:Truthy Values in JavaScript
JavaScript的if条件不一定是Boolean值,可以是任何类型的值。内置的强制类型转换接收到一个真值,会转换为true。
JavaScript内置的类型强制转换,会将真值转换为true。每一个值,要么是真值,要么是假值,任何不是假值的必然是真值。
真假经常出现在if语句中。例如,以下if语句只有在v是真值时才能打印。
1 | if (v) { |
记住,JavaScript只有7个假值:
false00n: BigInt 0'': 空字符串nullundefinedNaN
任何其他值都是真值。例如,即便是用false构建的Boolean对象,也是真值。
1 | const v = new Boolean(false); |
逻辑非运算符
JavaScript的逻辑非运算符将真值转换为false,将假值转换为true。换言之,逻辑非运算符!可以获得JavaScript内置强制类型转换的结果。
1 | // 如果`v`是真值,`b`是false |
你可能也见过两个逻辑非运算符:!!v。这样可以将一个任意值转换为Boolean类型。
1 | // 只有`v`是真值时,`isTruthy`才是true。 |