饥人谷技术博客前端学习

js入门-if(xx)和 x==y的判断

2018-11-02  本文已影响17人  YYPL

if(xx) 的判断判断

xx的类型不外乎Undefined Null Boolean Number String Object,ES6 又新增了第七种 Symbol 类型的值

括号里的表达式,强制转换为布尔类型

if(undefined){
    console.log('true');
}  
 // false              

if(undefined)的布尔值为false

- if(null)
if(null){
    console.log('null')
}
//false                

if(''):null的布尔值为flase

if(true){
    console.log('true');
} 
//true

if(false){
    console.log('true');
} 
//false

if(null):布尔值直接判断

if(+0){
    console.log('true');
} 
//false
if(-0){
    console.log('true');
} 
//false
if(NaN){
    console.log('true');
} 
//false

if(Number):+0 -0 NaN为false,其他为true

if(null){
    console.log('true');
}
//false

if(''){
    console.log('true');
} 
//false
if(' '){
    console.log('true');
} 
//true

if(null): 空字符串为 false,其他都为 true

if ([0]) {
    console.log('array')
}
//true

if([1,3,4]){
    console.log('true')
}
// true

if(object): object的布尔值为真

x==y的判断

undefined == null   
// true

undefined转为为number为NaN(not a number)
null转为为number为0
这个比较特殊,记住就行


'12345' == 12345
// true
'abcde' == '12345'
//false
'' == 0
//true
' ' == 1
//true
true == 1                  //true
false == 0                //true
true == null              //false  一个对象都不会等于 undefined 或 null。
false == null             //flase  一个对象都不会等于 undefined 或 null。
true == undefined         //false undefined转为为number为NaN
false == undefined       //false undefined转为为number为NaN
true == ''               //false
false == ''              //true 转为化number为 0              
true ==   []            //false   空数组[]调用 tostring ,结果既不是1也不是0
false == f []           //false   空数组[]调用 tostring ,结果既不是1也不是0
true == {}              //false  {}不能转化为数字,是一个字符串
false == {}            //false  {}不能转化为数字,是一个字符串

总结

if(xx),强制转为为布尔类型再判断
undefined == null //true (特殊)
true == {} //false {}不能转化为数字,是一个字符串
x == y 的结果判断,先把 x y 往数字转,然后再判断
一个对象都不会等于 undefined 或 null,undefined == null // true
NaN === NaN //false
undefined转为为number为NaN

参考


JavaScript 中的相等性判断-MDN
Truth, Equality and JavaScript
JavaScript-Equality-Table

上一篇 下一篇

猜你喜欢

热点阅读