2
我有以下的JavaScript代码:为什么此JavaScript代码在控制台上打印“undefined”?
var counter = 0;
function printCounter(){
console.log("counter=" + ++counter);
setTimeout(printCounter, 1000);
}
printCounter();
我期望它应打印输出:
counter=1
counter=2
counter=3
...
而是将其打印如下:
counter=1
undefined // <-- Notice this "undefined"
counter=2
counter=3
...
为什么它打印 “未定义”第一次迭代后?重要提示:在JavaScript控制台中执行代码时,我发现只有。如果它是页面的一部分,它可以正常工作。
...所以'undefined'是* REPL评估*的结果,但是由于* asynchronous *计时器正在运行,它将继续调用'console.log' ... – 2012-04-21 21:36:21
是的,谢谢,你是对的。我很困惑,因为所有浏览器都不是这样。 – 2012-04-21 21:40:30