if(xx)和a == b如何判断

if(xx)作为条件判断语句时,在(xxx)为非严格意义上的等式如何判断条件为true还是false?
六种数据类型,undefined,number,string,boolean,null与object,在进行if条件语句判断时都会转化为boolean类型判断,其转换规则如下:


image.png

如:

var a=5
if(a){
    console.log('true')
} // true

a=0
if(a){
    console.log('true')
} 
else{
    console.log('false')
}// false

a=NaN
if(a){
    console.log('true')
} 
else{
    console.log('false')
}//false

a=null
if(a)){
    console.log('true')
} 
else{
    console.log('false')
}//false

a==b的判断
a == b的判断分为两种情况,两者数据类型相同时的判断与数据类型不同时的判断。

1.当两者数据类型相同时

当a与b的数据类型相同时,两者执行严格的相等运算;

2.当两者数据类型不相同时

当a与b的数据类型不相同时,会有以下几种情况;
1.如果a和b一个是null,一个是undefined时,相等。
2.如果a和b一个是数字,一个是字符串,先将字符串转为数字,然后比较。
3.如果a和b一个值是true,一个值是false则将其转为1和0比较。
4.如果a和b一个值是对象,一个是数字或字符串,则尝试使用valueOf和toString转换后比较。
5.其它情况下都不相等。

你可能感兴趣的:(if(xx)和a == b如何判断)