Javascript, acerca de la solicitud de bucle infinito y detener ese bucle

Soy nuevo en JavaScript, así que esa es mi historia de fondo :) Este código sigue fallando mi navegador, y no me permitirá cancelar la solicitud si no cancelo en el primer intento, ya sea que ingrese un número o no. De todos modos, incluso el juego no funcionará, que es solo para llegar a un punto donde el número secreto es el número de adivinanzas de la persona. Para cancelar la solicitud, incluso intenté si (answer === null || answer === false || answer === "null") break; Pero no funcionará. ¿Alguien puede ayudar? Gracias.

Aquí está mi código:

<script>
var secret_number=Math.floor((Math.random() * 10) + 1); 
var answer=prompt("Enter a number you want to try");

while(secret_number!==Number(answer))
{
if(name===null||name===false||name==="null")
break;

if(Number(answer)>secret_number)
prompt("This number is too high!");

else if(Number(answer)<secret_number)
prompt("This number is too low!");

else
prompt("You got it!");
}

</script>

Tengo una pregunta de seguimiento. Tomé en cuenta lo que la gente me decía y se me ocurrió esto:

var secret_number=Math.floor((Math.random() * 10) + 1); 
var answer=parseInt(prompt("Enter a number you want to try"));

while(secret_number!==answer)
{
if(answer == null || answer == "" ||isNaN(answer))
break;

if(answer>secret_number)
answer=prompt("This number is too high!");

else if(answer<secret_number)
answer=prompt("This number is too low!");

else
alert("You got it!");
}

Mi pregunta es, ¿cómo es que mi "lo tienes!" la alerta continúa infinitamente? Sé que puedo hacer que se rompa allí, pero quiero saber por qué sigue haciendo eso. Debería tener esa respuesta secret_number === y salir del ciclo while, así que obviamente no está haciendo eso, y no entiendo por qué. Gracias de nuevo.

Respuestas a la pregunta(5)

Su respuesta a la pregunta