为什么这个formicolumns在这个for循环中?

时间:2017-12-05 09:19:21

标签: javascript for-loop

我只是看着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;中看到了这些分号,我删除了它们并尝试再次运行它。正如你所料,我收到了一个错误。为什么这些半色谱柱在那里?这是我第一次看到这个,我真的很好奇为什么这些需要在那里。

谢谢,如果你能给我一些相关的信息,因为我找不到任何关于它的信息...

4 个答案:

答案 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++所以它应该运行正常。