Por que esse código JavaScript imprime "indefinido" no console?
Eu tenho o seguinte código JavaScript:
var counter = 0;
function printCounter(){
console.log("counter=" + ++counter);
setTimeout(printCounter, 1000);
}
printCounter();
Espero que ele deve imprimir esta saída:
counter=1
counter=2
counter=3
...
Mas em vez disso, imprime a seguir:
counter=1
undefined // <-- Notice this "undefined"
counter=2
counter=3
...
Por que imprime "indefinido" após a primeira iteração? Importante: vejo esse comportamentosó quando o código é executado no console do JavaScript. Se é a parte de uma página, funciona bem.