Me gustaría hacer un contador simple con setInterval(), así:
setInterval(() => { if(typeof i === 'undefined') { let i = 1; } else { i++; } console.log(i); }, 1000); Lo que esto hace es fallar diciendo que i is not defined y me gustaría entender por qué.
¿Falla porque console.log(i) no está en el mismo ámbito que donde está let i = 1 ? ¿Entonces en JavaScript cada bloque { } tiene su propio alcance? Sé que podría definir i = 1 sin if else , pero me gustaría saber por qué este ejemplo no funciona. ¿Es causa de alcance?
Además, me gustaría que esto funcione con la definición de una variable, solo si no existe, ¡algo así como isset() en PHP!