Firebug 的 console.log 使用 javaScript 打印意外值

Firebug's console.log prints unexpected value using javaScript

我是 javascript 的新手,正在玩简单的代码,但是当我在 firebug 中的指定代码下方编写此代码时,我得到了意想不到的值。 这是代码

    var a=5;
    while(a<10000){
       if(a%1000==0)
         console.log(a);
       a++;
    }

这是控制台的输出

    var a=5; while(a<10000){   if(a%1000==0)     console.log(a);   a++; }
    1000
    2000
    3000
    4000
    5000
    6000
    7000
    8000
    9000
    9999

最后给了我“9999”,按照逻辑应该不会打印出来。
同时,我用 alert 替换了 console.log,我收到了准确的输出。
我觉得很简单,但我从来没有用过firebug,我有点好奇为什么会这样?

你的问题是 firebug 总是打印最后一条语句的 return 值。如果您将声明更改为:

var a=5; while(a<10000){   if(a%1000==0)     console.log(a);   a++; };null;

您将得到 null 而不是 99999999 是最后一个 a++ 的 return 值。这仅在您在控制台中输入代码时才会发生,因此您只需输入一个变量并打印出来即可。

The console has the ability to print the last value that is not being used in console.log.

9999 不是 output 而是 a

的最后一个值

您将在 Chrome-console 中观察到相同的行为。最后打印的值是为最后一条语句解释的值。