为什么此JavaScript代码在控制台上显示“未定义”?

我有以下JavaScript代码:


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控制台中执行代码时,我才会看到这种行为。如果它是页面的一部分,则可以正常工作。


拉莫斯之舞
浏览 565回答 2
2回答

茅侃侃

...所以REPL评估undefined的结果是这样,但是由于异步计时器正在运行,它将继续调用...console.log
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript