javascript函数中的奇怪行为
此javascript应多次运行函数javascript函数中的奇怪行为,javascript,for-loop,Javascript,For Loop,此javascript应多次运行函数funclen,然后返回是否始终成功。相反,只要func返回false,就会取消for循环。这怎么解释呢?() 由于第一个函数返回false,res=res&&func(0)将false赋值给res。下次执行该行时,即res=res&&func(1),func(1)将不会执行,因为res为(并保持)false &&是。给定a和
func
len
,然后返回是否始终成功。相反,只要func
返回false,就会取消for
循环。这怎么解释呢?()
由于第一个函数返回
false
,res=res&&func(0)
将false
赋值给res
。下次执行该行时,即res=res&&func(1)
,func(1)
将不会执行,因为res
为(并保持)false
&&
是。给定a和
,如果a
的计算结果为false
,b
根本不会被计算。Pedantic:你可以直接返回res
,而不是返回res==true
,这在某些情况下可能返回未定义的值,并且不能解决问题。
function do_something(func, len) {
var res = true;
for (var i = 0; i < len; i++) {
res = res && func(i);
}
return res == true;
}
do_something(function(x) {
console.log(x);
return false;
}, 5);
do_something(function(x) {
console.log(x);
return true;
}, 5);
0
0
1
2
3
4