var i = 100; function gamePlay() { while(i >= 0) { if (i>0) { console.log(i);} else{console.log(**i+1**);} i--; } }Cuando aumento i en 1 (la parte del código que está en negrita), me gustaría que ese cambio ocurra localmente. El resto del código debería usar i global, pero el problema es que el cambio se aplica globalmente y el resto del código deja de funcionar cuando agrego 1 a i. Este es el caso incluso si resto 1 antes de cerrar el ciclo while.
Prueba esto:
var i = 100; function gamePlay() { let i2 = i; // local variable while(i2 >= 0) { if (i2 > 0) { console.log(i2); } else { console.log(i2+1); } i2--; } }Cuando declara variables en una función, son locales para esa función específica. Pero cuando los declara fuera de la función, son globales y se pueden usar en cualquier lugar.
En su caso, var i = 100 es global y se puede usar en cualquier función. Entonces necesitas declarar otra variable dentro del bloque while .
Solo usa el nombre de esa variable.
En JavaScript, las variables solo son locales para una función, si son los parámetros de la función o si las declara como locales explícitamente escribiendo la palabra clave var antes del nombre de la variable.