var item = d.childNodes[i];
//
omething about item...
}
这个时候,细心的同学,已经发现了。每次计算.length的性能是非常差的。 然后第一版本的优化如下
for(var i = 0,len = d.childNodes.length ; i< len ;i++){
var item = d.childNodes[i];
//dosomething about item...
}
有没有更好的优化方案呢?
for(var i = 0; item = d.childNodes[i] ;i++){
//dosomething about item...
}
发现了没有。 用一句item=d.childNodes[i], 即完成了判断,又完成了赋值,看上去,是不是很舒服呢?而且不需要计算length。 性能也是不是更好呢?
注间:这种方法,适合数字类型的数组的遍历循环, 如果一个数组的索引是这样的
var a = [1,3,11];
面对这样的数组,可一定要小心了, 它找a[1] ,发现没有,就直接不往下遍历了。亲。。