为什么在console.log javascript中再次迭代?

时间:2013-04-06 16:44:52

标签: javascript console.log

我理解我猜的循环,但是我很惊讶地看到在firebug的console.log迭代中再次迭代。我希望迭代10x(0-9)。为什么10 ??

$i = 0;

while ($i < 10) {
    console.log($i);//the last time here should be $i=9, not $i=10
    ++$i;
}

// in console log i have(0...10)

while ($i < 10) {
    console.log($i);
    $i++;
}
// in console.log i have doubled 9(0...9,9) Why 9 doubled???

谢谢你的建议

2 个答案:

答案 0 :(得分:3)

我认为您看到的只是最后一个语句的结果,即$i++++$i。如果您直接在控制台中键入此语句,您会看到一个输出的数字,即使您没有明确输出它。

例如,如果我直接在Firefox的控制台中运行代码,我实际上看到了

10
0
1
...
9

10是上次执行++$i的结果,其他是console.log语句,只在代码终止后执行(看起来如此)。

如果您使用

console.log('Iteration: ' + $i);

然后你会更清楚地看到差异。


这也是您看到两个9的原因,因为$i++(其中$i = 9)的结果是9

答案 1 :(得分:2)

我认为您不希望看到的“10”和“9”是控制台中返回的内容。