我只是看着W3schools,正在寻找" for循环"。我看到了这个代码示例:
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var i = 0;
var text = "";
for (;cars[i];) {
text += cars[i] + "<br>";
i++;
}
document.getElementById("demo").innerHTML = text;
我在&#34; for循环&#34;中看到了这些分号,我删除了它们并尝试再次运行它。正如你所料,我收到了一个错误。为什么这些半色谱柱在那里?这是我第一次看到这个,我真的很好奇为什么这些需要在那里。
谢谢,如果你能给我一些相关的信息,因为我找不到任何关于它的信息...
答案 0 :(得分:2)
你的代码
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var i = 0; // initialized here
var text = "";
for (;cars[i];) {
text += cars[i] + "<br>";
i++; // it will handle increment
}
document.getElementById("demo").innerHTML = text;
与
相同for (var i=0;cars[i];i++) {
text += cars[i] + "<br>";
}
在代码中,您已初始化var i
并在循环内递增。
答案 1 :(得分:1)
for
循环由以下3部分组成:
第一部分初始化循环;第二个决定是否继续循环,第三个在每次迭代结束时做一些事情。
但是,每个都是可选的。
for (;cars[i];)
语句与
while(cars[i]){
//code
}
注意:它也存在for(;;)
,相当于:
while(true){ }
答案 2 :(得分:1)
for (;cars[i];)
第一个分号: 通常在for循环中我们声明一个计数器。但是,这里的计数器已经在for循环之外定义了。所以,一个空洞的陈述。
第二个分号:
一旦计数器i
超过数组的长度,使用arr [i]返回undefined,这是假的,循环将终止。通常在第二个分号后,我们递增或递减计数器,但这里计数器在for循环本身中递增。
分号在那里,以便我们不会出现语法错误。
答案 3 :(得分:1)
for循环的思想结构应该是:
for(<init>;<condition>;<operation after each iteration>)
其中:
init: 将在循环之前执行一次
条件: 将被检查为每次进入的真实性
每次迭代后操作: 将在每次迭代后执行
并且它们是可选的。
对于特定示例,您在执行var i=0
之前执行的 init 操作以及每次迭代后的操作,您手动执行i++
所以它应该运行正常。