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.