Oi, espero conseguir te ajudar, vamos analisar o código:
Nessa parte estamos declarando as variáveis, o “let” é uma palavra reservada em JavaScript para declaração de variáveis que podem ter seu valor alterado ao longo do código
let numeroSecreto = 5; então aqui temos a variavel que vai determinar o numero secreto
let chute; e aqui a variavel que vai receber o valor do chute
Em seguida, temos o nosso loop que vai rodar enquanto o chute for um valor diferente do número secreto (ou quando for igual, ele já entra na condição de exibir a mensagem de parabéns) ou seja, enquanto o usuário digitar um valor diferente de 5, esse código vai estar em execução:
while (chute != numeroSecreto) {
chute = prompt('Escolha um número entre 1 e 10');
if (chute == numeroSecreto) {
alert(`Isso ai! Você descobriu o número secreto ${numeroSecreto}`);
} else if (chute > numeroSecreto) {
alert(`O número secreto é menor que ${chute}`);
} else {
alert(`O número secreto é maior que ${chute}`);
}
}
Caso a pessoa acerte direto o numero já vai exibir a mensagem:
if (chute == numeroSecreto) {
alert(`Isso ai! Você descobriu o número secreto ${numeroSecreto}`);
}
Agora, se o número digitado (chute) for maior que o número secreto, por exemplo, o 6 o código entra na condição:
} else if (chute > numeroSecreto) {
alert(`O número secreto é menor que ${chute}`);
}
Ou na outra condição se a pessoa digitar um número menor. Como o chute digitado ainda é diferente do numero secreto o loop vai exbir novamente a mensagem que pede para a pessoa digitar um número e com isso o valor da variavel vai ser alterado:
while (chute != numeroSecreto) {
chute = prompt('Escolha um número entre 1 e 10');
Agora vamos analisar a versão que você enviou:
Aqui você já define o valor da variável chute fora do loop de execução, isso significa que não vai pedir pra ser digitado o valor novamente.
let chute = prompt('Escolha um número entre 1 e 10');
Quando o loop for rodar, ele vai cair em uma das condições, mas como o valor da variável foi definido uma única vez, ele entra em um loop infinito.
while (chute != numeroSecreto) {
if (chute == numeroSecreto) {
alert(Isso ai! Você descobriu o número secreto ${numeroSecreto});
} else if (chute > numeroSecreto) {
alert(`O número secreto é menor que ${chute}`);
} else {
alert(`O número secreto é maior que ${chute}`);
}
}
Por exemplo se a pessoa digitar o valor 6, o loop vai verificar que é um numero diferente do numero secreto e procurar a condição que se encaixa:
} else if (chute > numeroSecreto) {
alert(`O número secreto é menor que ${chute}`);
então vai ficar imprimindo sempre a mensagem do alert: O número secreto é menor que 6 infinitamente. Ou então se a pessoa digitar logo de cara o número 5 não entra nem no loop e não exibe a mensagem de parabéns.
Espero ajudado!