对于JavaScript,我绝对是一个新手。我搜索了stackoverflow和web,以解释为什么这个JavaScript for循环不会无限循环,但我还没有找到一个明确的答案。我目前正在使用这个循环,我借用和修改的循环,在我的网站上,它按预期工作;但是,我想知道它为什么不能无限循环。我的印象是for循环的第一个语句定义循环变量,第二个设置循环条件(防止无限循环),第三个在执行代码块后修改循环变量。如果缺少循环条件语句,为什么这个循环不能无限循环?
function showAll() {
var aBoxes = document.querySelectorAll('.aBox');
for (var i = a.Boxes.length; i--;) {
aBoxes[i].style.display = 'block';
}
}
答案 0 :(得分:4)
当变量“i”最终递减为0时,i--
的值将为“falsy”,循环将终止。循环不缺少条件表达式;那就是i--
。
答案 1 :(得分:0)
只要i--
;不是0
,它将被评估为true
,因此循环将继续。当它达到0
,其评估为false
时,它将停止
答案 2 :(得分:0)
因为它没有缺少循环条件语句。它缺少修改声明。缺少第二个条件的人看起来像这样:
for (var i = a.Boxes.length; ; i--)
你的循环正在做什么,每当检查循环条件语句然后检查结果值是真还是假(即非零或非零)时,递减i
零)。当i
足够小(i==0
)时,这将终止循环。
答案 3 :(得分:0)
循环没有错过条件表达式;它缺少每次循环迭代结束时出现的表达式(第三个表达式)。但是,i
作为条件表达式的副作用递减,因此不需要最终表达式。
条件表达式在false
到达i
后评估为0
,因此循环终止。
更一般地说,for
语句中的每个表达式都是可选的。省略其中任何一个或全部都是完全可以的。