¿Porqué la variable suma no vuelve a inicializarse en 0?
- La variable suma vive fuera del while
let suma = 0;
Cuando declaras suma fuera del while, JavaScript la guarda en memoria global del bloque actual (en este caso, la función o script principal).
El while no crea una copia de suma.
Dentro del while puedes leer y modificar esa misma variable. - Qué pasa dentro del bucle
suma += numero;
Esto es lo mismo que:
suma = suma + numero;
Cada vez que entras al while, usas el valor actual de suma, le sumas numero y luego guardas el resultado en la misma dirección de memoria.
El while no reinicia suma en cada vuelta porque no la declaraste dentro del bucle.