布尔类型中 至只有 true和false
在开发中它是非常重要的两个值,尤其是在条件判断中
如何把其他类型转换为布尔类型?
1、Boolean()
Boolean(1); //true Boolean(100); //true Boolean(-122);//true Boolean(NaN);//false Boolean(0); //false
2、! :取反 先把其他数据类型转换为布尔类型,再取反
! '字符串' //false !' ' //false !0 //true !1 //false
3、!! :取两次反,等价于没有取反,直接转换为布尔类型
!!null; //false !!undefined; //false !!0 ; //false !!' '; //false !!NaN ;//false !![] ; //true !! { }; //true
规律:在js中,只有 0 、NaN 、空字符串、null 、undefined 这个5个值转换成布尔为false,其余都转换为true
-----------------------------------------------------
null && undefined详解:
都是代表空或者没有的意思
null:空对象指针
undefined:未定义,只有js中有
null和undefined区别:
转换为数字后的不同,null转换数字是0,undefined转换数字是NaN
null一般是意料之中的没有,暂时没有,使用时一般先手动赋值为null,后面使用的时候再次会赋值
undefined 不是人为手动控制的,大部分都是浏览器自主为空,后面可以赋值也可以不复制
var num=null; num=12; var m; //此时m的值浏览器分配的是 undefined
总结:其实null和undefined使用上没有太多区别,就好比 div和p的使用,只是语义化不同,使用方式约定俗成