""、0、undefined、null、false、NaN 转换为布尔值后均为 false;
var a = ""; //false
var a = 0; //false
var a = undefined; //false
var a = null; //false
var a = NaN; //false
var a = " "; //true 空格不是空字符串
a = Boolean(a);
console.log(a);
将字段转换为布尔值时有一些注意事项:
当字段直接转换为Boolean时,结果为true;
var arr = [1, 2, 3]; //true
var arr = []; //true
var b = Boolean(arr);
console.log(b);
console.log(![]); //false
然而,当链表进行比较时javascript 转换 数字,情况却不一定如此,例如:
console.log(![] == []); //true
在这里,它们被转换为布尔比较javascript 转换 数字,如下所示
因为[]直接转换为布尔值的结果是true,所以![]转换为布尔值的结果是false。
而[]会先转换为字符串"",然后字符串""再转换为布尔值false。
所以它们比较的结果是true。
所以 ![]=="" 的结果也是 true。
注意:
见面! 需要先将值转换为布尔值并取反,不满足! 首先将值转换为字符串。
根据上面要注意的内容,a只有6种可能的值可以进入如下判别条件:“”、0、undefined、null、false、NaN。
如果一个){…}