Boolean布尔数据类型
至有两个值TRUE/FALSE
把其他类型值转换为布尔类型
只有0 NaN “” null undefined 五个值转换为FALSE,其余都转换为TRUE,没有特殊情况
助记:领(0)恩(NaN)恐("")难(null)安(undefined)
- Boolean()
- !/!!:
- ! 取反,先转为布尔,再取反
- !! 取反再取反,相当于只转换为布尔<=>Boolean
- 条件判断:如果条件只是一个值,不是==/ ===/ !=/ >= 等比较,是要把这个值先转换为布尔类型,然后验真假。
练习题
if(1){
//=>1是五个值以外为true,所以会输出;
console.log("哈哈");
}
if("3px"+1){
//=>"+"两边如果遇上字符串或者对象,就变成了字符串拼接
//=> "3px1"=>true,所以会输出;
console.log("呵呵");
}
if("3px"-1){
// 除“+”外其他运算符只能是数学运算,先把“3px”基于Number专为数字=>NaN,NaN加上任何东西都是NaN
//NaN+1 =>NaN =>false,所以不会输出。
console.log("嘻嘻");
}
null/undefined
null和undefined都代表的是没有
- null:意料之中(一般是开始不知道值,我们手动设置为null,后期再赋予值操作)
let num = null;//=> let nul = 0;一般最好用null作为初始的空值,因为0不是空值,他在栈内存中有自己的存储空间(占了位置)
...
num = 12;
- undefined:意料之外(不是我能掌控的)
let num
...
num = 12; //=>创建一个变量没有赋值,默认值是undefined