Dlaczego ten kod JavaScript jest drukowany „niezdefiniowany” na konsoli?

Mam następujący kod JavaScript:

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

Spodziewam się, że powinien wydrukować to wyjście:

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

Ale zamiast tego drukuje następujące:

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

Dlaczego drukuje „niezdefiniowane” po pierwszej iteracji? Ważne: widzę takie zachowanietylko kiedy kod został wykonany w konsoli JavaScript. Jeśli to część strony, działa dobrze.

questionAnswers(1)

yourAnswerToTheQuestion