Warum wird dieser JavaScript-Code auf der Konsole als "undefiniert" ausgegeben?

Ich habe folgenden JavaScript-Code:

<code>var counter = 0;
function printCounter(){
   console.log("counter=" + ++counter);
   setTimeout(printCounter, 1000);
}
printCounter();
</code>

Ich erwarte, dass es diese Ausgabe drucken sollte:

<code>counter=1
counter=2
counter=3
...
</code>

Stattdessen wird Folgendes ausgegeben:

<code>counter=1
undefined  // <-- Notice this "undefined"
counter=2
counter=3
...
</code>

Warum wird nach der ersten Iteration "undefiniert" gedruckt? Wichtig: Ich sehe ein solches Verhaltennur wenn der Code in der JavaScript-Konsole ausgeführt wird. Wenn es der Teil einer Seite ist, funktioniert es gut.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage