if的条件
篇外话:
在取对象的属性或对对象使用方法之前要先判断该对象是否存在,或者类型是否符合;
不但编写程序的通路,还编写不满足条件的各条岔路
if的条件表格:
| type | if | else |
| boolean | true | false |
| number | 非0,非NaN | 0,NaN |
| object | 非null的对象 | null,undefined |
| string | 非空字符串 | "" |
注意:
type为number时,莫以为负数就会执行else语句;
type为string时,可以简写为 if(!str);
NaN不和任何类型的数据相等,包括本身;
用isNaN()判断NaN,有个Number()转换隐藏在其中,if ( isNaN(a) )
虽然"0"==false为true,但if("0"){console.log("gg")}else{console.log("hh")}的结果是"gg"
var k = [];k == false为true,但if(k){console.log("gg")}else{console.log("hh")}的结果是"gg"
在if语句中要用length属性来判断空数组,如
if(k.length){
console.log("k不是空数组");
}else{
console.log("k是空数组");
}
“==”的比较规则:
1. 有一方的typeof是"boolean",则两方都转成number类型进行比较
2. 有一方的typeof是"number",另一方的typeof不是"obkect",则两方都转成number类型进行比较
3. 有一方的typeof是"object",就不用比了

浙公网安备 33010602011771号