在 JavaScript 中,Falsy也叫做假值。
如果一个值不是布尔值(true或者false),但是经过Boolean()转换函数转换成了false,那么这个值就是假值。
所有假值如下:
false
0
''
""
null
undefined
NaN
在 JavaScript 中,Truthy也叫做真值。
如果一个值不是布尔值(true或者false),但是经过Boolean()转换函数转换成了true,那么这个值就是真值。
除去上述所有的Falsy假值,其他值都是Truthy真值。
只有下面这两个值
true
false
如果你学过Vue,你应该知道v-show和v-if,它们后面的值是真值或者假值,而不是是简单的布尔值,如果你没有学过Vue也不要紧,你绝对在js里面见过if(XXX),这个XXX也是真值或者假值,而不是简单的布尔值。
如果你想要一个解释,那就是:if(condition)中的condition结果如果不是布尔值(true或者false),那么ECMAScript会自动调用Boolean()转换函数将结果转换为布尔值,所以最终还是要用布尔值,只不过转化了而已,估计Vue中也是类似的做法,其实这种说法在《JavaScript权威指南》中有写到,你可以去看一下,如果你看电子书的话,链接:https://pan.baidu.com/s/1U-NB9Yq3CEtGro5poQ-o4A,提取码:1een