2019-02-27 JS流程判断

2019-02-27  本文已影响0人  E1FANG

if(xx)的判断
1.if(number)
if(number)即括号内为数字类型,0、NaN为false,其他值为true

var a = 5
if(a){
  console.log('ture')
}//true
a = 1
if(a){
    console.log('true')
} // true
a = 0
if(a){
    console.log('true')
} // false
a = -1
if(a){
    console.log('true')
} //false
a = NaN
if(a){
    console.log('true')
} //false

2.if(string)
if(string)即括号内为字符串类型,空字符串为false,其他为true

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

3.if(boolean)
if(boolean)即括号内为布尔类型,直接判断

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

4.if(object)
if(object)即括号内为对象类型,均为true

if([1,3,4]){
    console.log('true')
} // true
function f(){
   var b = 1 + 2;
   return b; 
}
if(f()){
    console.log('true')
} //true

5.if(undefined)
if(undefined),为false

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

6.if(null)
if(null),为false

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

a==b的判断
对于相同类型的a、b,相等的判断较简单。以下主要讨论不同数据类型的a、b之间进行相等运算时的判断。
1.string == number
先将string转换成number类型,再判断。
"" == 0 //true
" " == 0 //true
"hello" == 0 //false
"hello" == 1 //false
"2" == 2 //true

  1. boolean == (any)
    boolean在相等运算时会转换为数值,true为1,false为0。
    "" == true //false
    "" == false //true
    " " == true //false
    "hello" == true //false
    1 == true //true
    0 == false //true
    undefined == false //false
    undefined == true //false
    null == false //false
    null == true //false

3.object == number/string
object会试图使用valueOf和toString转换后比较
var obj = {
a: 0,
valueOf: function(){return 1}
}
obj == 1 //true
[] == 0 //true
[2] == 2 //true

  1. null == undefined //true
上一篇 下一篇

猜你喜欢

热点阅读