我在Codecademy上学习JavaScript。当我使用while循环时,我发现如下所示的输出很多。
for (var i=0; i<5; i++){
console.log("Dhanu identify problems and solve them");
}
var loop = 0;
while(loop<5){
console.log("Do some more");
loop++;
}
我在最后一行收到一个不需要的输出为4。
答案 0 :(得分:2)
你得到的输出只是console.log,它记录了'loop'变量的最后一个已知值:(在firefox中):
这绝对与您的代码无关,您不必担心这一点。
如另一个答案所述,调试控制台用于记录最后一行的结果(可能是因为它们是为了调试)。
例如,语句“i = 1”的计算结果为“1”:
而声明“var i = 1;”评估为“未定义”,因此记录“未定义”
您可以通过在这些语句上调用eval来观察相同的行为:
答案 1 :(得分:0)
你看到了,因为你的while循环中的最后一个语句是loop ++,它“返回”循环的当前值。这只是在这样的控制台中运行代码的副作用。控制台基本上是read-execute-print-loops(REPL),所以它们需要打印一些东西。如果您将其作为网页中的脚本运行,则不会看到4
答案 2 :(得分:0)
当您在开发者控制台中编写任何语句时,将打印最后返回的值...
例如
var a;
它在控制台上打印undefined。
a = 10;
它在控制台上打印10个。
a = 10; a = a + 5;
它在控制台上打印15个。
当我们分配任何值或递增或递减数字时,它会在执行该操作后返回值...
所以,在上面或下面的代码中
var loop = 0;
while(loop<5){
console.log("Do some more");
loop++;
}
最后循环++是4。