NaN undefined 0 null "" 会转换成false
其余都是true
null转成数字是0,undefined转成数字并不是0,而是NaN。
null == undefined 并不是因为都被转成了0,而是因为它们两个都代表“没有”,所以ECMAScript文档里面特殊规定了它们是宽松相等的
1.
2.console.log(0||5)//放回5,在||条件下,因为0为false,所以选择为true的5进行返回
3.console.log(0&&5)//0
4.null:typeof检测是对象
5.==(值相同
===(值与类型都要相同,开发时尽量使用===
类型转换
val为NAN,0,undifined,null,""==>false
!val 会执行if里面语句,直接val会执行else里面,因为布尔值为false
if(!val){
}else{
}
"=="与"==="的区别,==判断值,会做隐式转化,===是判断类型,===更常用
特殊类型的隐式转换 NaN,0,undefined,null,""
这五个会转为false,其他的都会转为true
逻辑运算符&&和||隐式转换下的情况
&&和|| 会进行短路运算,并不会转换为布尔值 ,如果需要做判断,也是根据短路运算返回值判断
==和===的区别
== 会先进行隐式转换 再比较
=== 不会进行隐式转换,直接比较