为什么这个while循环产生无限迭代

时间:2016-09-29 08:35:03

标签: javascript

大家好,我试着创建一个运行十次的简单循环,但相反,我正在进行这种可怕的无限循环。这是代码

var numOfCars = 10,
marker = 0;
while (marker!= numOfCars.length) {
    marker++;
    console.log('I have this many cars ' + marker);
}

while循环是否总是产生无限次迭代?

4 个答案:

答案 0 :(得分:5)

从语言规范中可以看出Number objects don't have a length property。访问不存在的属性的计算结果为undefined。因此,您要循环,直到marker等于undefined,这将永远不会出现这种情况。

答案 1 :(得分:0)

Beacouse numOfCars.length返回undefined,因此marker!= numOfCars.length始终为真。属性.length仅适用于数组和字符串。

答案 2 :(得分:0)

您可以尝试此代码

var numOfCars = 10 , marker = 0;
while (marker!= numOfCars) {
    marker++;
    console.log('I have this many cars ' + marker);
}

答案 3 :(得分:-4)

使用for循环:

var numOfCars = 3;   
for ( var marker = 0; marker < numOfCars; marker++) {
     console.log('I have this many cars ' + marker);
}