下面 6 种值转化为布尔值时为 false, 其他转化都为 true
- ,undefined(未定义, 找不到值时出现)
- ,null(代表空值)
- ,false(布尔值的 false, 字符串 "false" 布尔值为 true)
- ,0(数字 0, 字符串 "0" 布尔值为 true)
- ,NaN(无法计算结果时出现, 表示 "非数值"; 但是 typeof NaN==="number")
6,""(双引号) 或''(单引号) (空字符串, 中间有空格时也是 true)
注意空数组空对象, 负值转的布尔值时都为 true
数据类型 | 转为 true 的值 | 转为 false 的值 |
---|---|---|
Boolean | true | false |
String | 任何非空字符串 | ‘‘(空字符串) |
Number | 任何非零数字值(包括无穷大) | 0 和 NaN |
Object | 任何对象 | null |
Undefined | n/a | undefined |
对于 0, '', null, undefined, NaN,{}, [], Infinity 求布尔值, 分别是 false false false false false true true true.
因此我们知道的一点是: 对象的布尔值是 true, 即使是对象 {}.
"!!" 将表达式进行强制转化为 bool 值的运算, 运算结果为 true 或者 false.
例如 array=[1,2,3] array.num=undefind !array.num=true !!array.num=false
来源: http://www.bubuko.com/infodetail-2986738.html