我是javascript的新手并且正在使用简单的代码但是当我在firebug中编写下面的指定代码时,我得到了意想不到的值。 这是代码
new Timeout(string)
这是控制台中的输出
var a=5;
while(a<10000){
if(a%1000==0)
console.log(a);
a++;
}
最后它给了我“9999”,它不应该根据逻辑印刷。
当我用 alert 替换 console.log 时,我收到了确切的输出。
我觉得这很简单,但我从未使用过萤火虫,我有点好奇知道为什么会这样?
答案 0 :(得分:3)
你的问题是firebug总是打印最后一个语句的返回值。如果您将声明更改为:
var a=5; while(a<10000){ if(a%1000==0) console.log(a); a++; };null;
您将获得null
而不是9999
。 9999
是最后a++
的返回值。仅当您在控制台中输入代码时才会这样,因此您只需输入一个变量并将其打印出来。
答案 1 :(得分:2)
控制台可以打印
console.log
中未使用的最后一个值。
9999
不是output
,而是a
的最后一个
您将在Chrome-console
中观察到相同的行为。打印的最后一个值是为最后一个语句解释的值。