这个最终号码来自哪里?

时间:2015-01-26 23:04:50

标签: javascript

如果我在Chrome控制台中运行以下代码(标签道歉):

var x = 0;

theLoop:
    while (1) {

        if (!(x <= 2)) {
            break theLoop;
        }

        console.log('x: ', x);
        ++x;
        continue theLoop;
    }

以下内容输出到控制台:

x:  0
x:  1
x:  2
3

已经很晚了,所以我错过了一些非常明显的东西,但是&#39; 3&#39;来自?

4 个答案:

答案 0 :(得分:3)

不要担心:它不是一个真正的console.log,而只是显示已读取的最后一个值的浏览器(除非它被分配给var),在这种情况下, ++x等于3。

例如,如果在您的代码段末尾添加console.log('the end');甚至只是0;,则上一个日志会有所不同,但不会影响您的程序。

答案 1 :(得分:0)

默认情况下,Chrome会打印最后指定的变量,但只有在至少分配两次时才会这样,所以这样:

   
var x = 5;
var y = 3;

什么都没有,但是

var x = 5;
x = 4;
var y = 3;

会给你4

在您的情况下,它是x=3

答案 2 :(得分:0)

我也见过这样的。但该值未在应用程序中使用。 Firefox不会显示它。

答案 3 :(得分:0)

好的,3是循环后控制台返回x的值,原因x == 3是显示行x: 2之后的++x x }再次增加x == 3,ergo {{1}}!