var total=0; var data=new Array(5);//定义了data数组,length为5,但是都是元素都是undefined。 for(i=0;i<data.length;i++){ if(!data[i]) { total=total+1; continue;} total +=data[i]; } alert(total);
!data[i]为true,data[i]===undefined也是true。typeof(data[i])=='undefined'也是true,data[i]==null也是true。如果需要对于以下这种数组处理
var data=[2,5,,8];//data[2]== undefined
对于这类的稀疏数组,可能遍历时加入数据,那么通过if(...) continue;跳出这次循环,看具体对undefined还是null的处理,其实两者此时效果是一样的。都是“没有数据”的含义。
------------------
1.跳过null,undefined,不存在的元素。
if(!data[i]) continue;
2.跳过undefinde,不存在的元素。
if(data[i]===undefined) continue;
3.跳过不存在的元素
if(!(i in data)) continue;
if(data[i])表示如果存在,他的!就是表示undefined,null和不存在。