关于for循环的一小段代码
var arr = [1, 2, 3];
for (var i = 0, j; j = arr[i++];) {
console.log(j);
}
这段代码的循环条件是什么,看不出来,希望知道的人帮忙解决一下啊
16 回复
语句 1 在循环(代码块)开始前执行(可选) 语句 2 定义运行循环(代码块)的条件(可选) 语句 3 在循环(代码块)已被执行之后执行(可选)
答案就是 j = arr[i++] = > j == true
var arr = [1, 2, 3];
for (var i = 0, j; j = arr[i++];) {
console.log(j);
}
console.log(i); // 4
i变量到了4,剔除掉i++,说明循环最后的判断语句为j=arr[3]
,arr[3]为undefined,然后j=undefined也返回undefined
比如下面的循环永远也进不去
var j;
while(j=undefined){
$.writeln("never been here")
}
考的是undefined作为判断条件会被认为是false吧.
不过这写法真溜,不用length不用try{}catch(){}就把数组遍历完了,不知道效率如何?