为什么这个JavaScript代码在控制台上显示“undefined”?

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

这是因为“printCounter()”函数本身返回undefined 。 这是控制台告诉你expression的结果。

通过添加return "Hello Anton!";更改“printCounter() return "Hello Anton!"; 到最后 :-)

编辑 – 说它“返回undefined ”有点混乱。 真的,没有明确的回报,但效果是一样的。