一.特殊类型的隐式转换
NAN,0,undefined,null,"" => false true
特殊类型的隐式转换就是当遇到这五种类型时Boolean()会默认隐式转换为false
二.逻辑运算符&&和||在隐式类型转换下的情况
console.log(true && true) //true
console.log(true || true) //false
console.log(5 || 0) //true false //返回true则返回5
console.log(0 || 5) //false true //返回true则返回5
//将0隐式转换为false
console.log(0 && 5) //false true //返回false则返回0
console.log(5 && 0) //true false //返回false则返回0
三.==和===的区别
console.log(undefined == null)
console.log(undefined === null)
==:是对比值之间的关系,在对比的时候会进行隐式转换
undefined会转换成0,null也会转换成0,故0==0为true
===:不会做隐式转换,值相等且类型相等才是相等的
undefined的类型是undefined,null的类型时object,故为false
建议严格按照规范使用===