JS中IF判斷條件:
非空即為真,非0即為真
- 字符串參與判斷時:非空即為真
判斷字符串為空的方法
if(str!=null && str!=undefined && str !='')
可簡寫為
if(str){
console.log(str)
}
-
數(shù)字參與if判斷:非0非NAN即為真
var i = 0; if(i){ alert('here'); }else{ alert('test is ok!'); } 輸出結果為test is ok
-
null類型參與判斷
var i =null; if (i){ alert("1") }else{ alert("2") }輸出結果為2
-
undefined參與判斷
var i; if (i){ alert("1") }else{ alert("2") }輸出結果為2
總結:數(shù)字參與判斷時非0即為真诅病,字符串參與判斷時非空即為真兄纺,對象參與判斷時非null非undefined即為真({}也為真)
- 在javascript中尸饺,哪些值能作為if的條件呢
布爾變量true/false
-
數(shù)字非0,非NaN/ (0 或NaN)
見下面的例子睦柴,莫以為負數(shù)就以為if語句為假了京髓。
代碼如下:
var i = -1;
if(i){
alert('here');
}else{
alert('test is ok!');
}輸出結果為here
對象null/(null或undefined)
數(shù)組
無論是空數(shù)組還是非空數(shù)組,都是true;
可以通過arr.length來進行判斷莱找;-
字符串非空串(“”)/空串("")
綜上所述,對于字符串嗜桌,不用寫一大堆if(str!=null && str!=undefined && str !=''), 只要用一句
if(str){
//do something
}
就可以了奥溺。
對于數(shù)字的非空判斷,則要考慮使用isNaN()函數(shù)骨宠,NaN不和任何類型數(shù)據(jù)相等浮定,包括它本身,只能用isNaN()判斷层亿。對于數(shù)字類型桦卒,if(a)語句中的a為0時if(a)為假,非0時if(a)為真:
var b;
var a = 0;
a = a + b;
if(a){
alert('1');
}else{
alert('2');
}
if(isNaN(a)){
alert('a is NaN');
}