Olá Eduardo, beleza?
Referente a sua dúvida acredito que seja quanto a lógica, correto?
O que acontece é o seguinte, o "While" é uma estrutura de repetição que irá se repetir até que a determinada condição seja estabelecida.
O comando "IF" é um "verificador" dentro da estrutura do seu código, no caso sempre que tiver um "IF" no seu código, será realizada uma verificação, retornando verdadeiro ou falso para a mesma.
No seu código..
Note que vc tem um While que tem por definição "3 tentativas de Login" (sua variável chance). Toda vez que você abrir o navegador vc terá que informar o seu usuário e senha.
var loginInformado = prompt("Informe seu login");
var senhaInformada = prompt("Informe sua senha");
armazenando nas variáveis "loginInformado " e "senhaInformada ", após inserido, teremos uma rotina de verificação através do "IF", onde:
/* Toda vez ele executará esse IF */
if ( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {
/* Caso o Login informado seja igual ao LoginCadastrado lá em cima ***E*** a senha também for igual a informada, então ele executará um alerta para vc, informando que o 'acesso foi liberado' e terminará o evento do while */
alert("Acesso liberado!");
brakeWhile();
}
else {
/* Senão (caso contrario do IF acima, ele irá executar esse trecho, onde alertará que o acesso foi negado e adicionará +1 a sua variavel "chance". */
alert("Acesso negado!");
chance++;
if (chance > 3){
/* Aqui é o ultimo caso, se vc errar 3 vezes a sua senha, significa que ele entrou 3 vezes no "else", nesse caso o valor de chance será = 3, executando sempre a sua função "mostra"
mostra ("Tente novamente mais tarde!");
}
}
Note que ao errar 3 vezes a senha, vc terá a variável "chance" com valor maior que 3, o que causa o rompimento do seu While, encerrando a execução da sua função, até vc recarregar a página novamente.
Tentei ser o mais claro dentro do que achei que poderia ser sua dúvida, qualquer coisa comenta aqui!
Abraços