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
而不是 9999
。 9999
是最后一个 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
中观察到相同的行为。最后打印的值是为最后一条语句解释的值。
我是 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
而不是 9999
。 9999
是最后一个 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
中观察到相同的行为。最后打印的值是为最后一条语句解释的值。