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