循环后的额外输出

时间:2016-05-16 12:48:17

标签: javascript loops console.log

我在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。

enter image description here

3 个答案:

答案 0 :(得分:2)

你得到的输出只是console.log,它记录了'loop'变量的最后一个已知值:(在firefox中):

enter image description here

这绝对与您的代码无关,您不必担心这一点。

如另一个答案所述,调试控制台用于记录最后一行的结果(可能是因为它们是为了调试)。

例如,语句“i = 1”的计算结果为“1”:

enter image description here

而声明“var i = 1;”评估为“未定义”,因此记录“未定义”

您可以通过在这些语句上调用eval来观察相同的行为:

enter image description here

答案 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。