Fabio,
ou muda seu incrementador para o fim do código (e aí até pode mudar de 4 para 3 a atribuição de valor para a variável tentativa em caso de acerto):
<meta charset="UTF-8">
<script>
var loginCadastrado = "alura";
var senhaCadastrada = "alura321";
var tentativas = 1;
while(tentativas <= 3) {
var loginInformado = prompt("Informe seu login");
var senhaInformada = prompt("Informe sua senha");
if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {
tentativas = 3;
alert("Bem-vindo ao sistema, " + loginInformado + ".");
}else{
if(tentativas == 3) {
document.write("Número máximo de tentativas excedidas.");
}else{
alert("Login inválido. Tente novamente");
}
}
tentativas = tentativas + 1;
}
</script>
Ou altera o valor inicial da variável tentativa para zero, e faz o while até < 3:
<meta charset="UTF-8">
<script>
var loginCadastrado = "alura";
var senhaCadastrada = "alura321";
var tentativas = 0;
while(tentativas < 3) {
tentativas = tentativas + 1;
var loginInformado = prompt("Informe seu login");
var senhaInformada = prompt("Informe sua senha");
if( loginCadastrado == loginInformado && senhaCadastrada == senhaInformada ) {
tentativas = 4
alert("Bem-vindo ao sistema, " + loginInformado + ".");
}else{
if(tentativas == 3) {
document.write("Número máximo de tentativas excedidas.")
}else{
alert("Login inválido. Tente novamente");
}
}
}
</script>
Do jeito que está, a primeira tentativa já é a de número 2, por isto dá erro.