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",就不用比了

posted @ 2017-05-10 14:27  chuanzhi946  阅读(265)  评论(0)    收藏  举报