Si pongo 'let tableValue' fuera de un ciclo while , muestra el mismo número 10 veces y cuando lo escribo dentro del ciclo while , imprime una tabla del valor 'n'.
¿Cuál es la diferencia entre estas dos cosas?
function table(n) { let i = 1; let tableValue = (n * i); while (i <= 10) { console.log(tableValue); i++; } } table(9); function table(n) { let i = 1; while (i <= 10) { let tableValue = (n * i); console.log(tableValue); i++; } } table(9);Si pones esta línea:
let tableValue = (n * i); fuera de su ciclo, como lo hizo en el primer ejemplo, luego tableValue se establece una vez, antes de que comience el ciclo, y cuando lo registra, está registrando el mismo valor cada vez, porque nunca lo cambia después de eso.
Esta declaración no es una declaración de que tableValue siempre es n * i en todo momento, incluso cuando n e i cambian. Si desea eso, debe volver a calcular tableValue cada vez que cambie cualquiera de los valores. Eso es lo que estás logrando al poner esa línea dentro de tu bucle.
Las computadoras ejecutan el código una línea a la vez y no miran mucho hacia adelante o hacia atrás. Cuando el código cambia el estado de su programa, como establecer un valor de variable, ese cambio persiste hasta que se vuelve a cambiar más tarde.
Usar:
function table(n) { let i = 1; let tableValue = (n * i); // This is 1 * 9, because it is outside the while loop ( the while loop block } don't worry that it's inside the function, it still needs to be in the while block. I think that's why you're getting confused. while (i <= 10) { console.log(tableValue); i++; } } table(9);He puesto comentarios en la línea en la que creo que necesita explicación.