Tiene un detalle código.
Da 4 intentos ya que, termina contando el intento 0, además de que se podría reducir un poco el código y las líneas.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function saltarLinea() {
document.write("<br><br>");
}
function imprimir(frase) {
document.write(frase);
saltarLinea();
}
var inicioDeSesionRegistrado = "alura";
var contrasenhaRegistrada = "alura321";
var intentos = 0;
var contador = 3;
while(contador >= intentos){
var inicioDeSesionIngresado = prompt("Ingrese su usuario");
var contrasenhaIngresada = prompt("Ingrese su contraseña");
if( inicioDeSesionRegistrado == inicioDeSesionIngresado && contrasenhaRegistrada == contrasenhaIngresada ) {
alert("Bienvenido al sistema " + inicioDeSesionIngresado);
break;
} else {
alert("inicio de sesión inválido, le quedan "+contador+" intentos.");
}
--contador;
}
if( inicioDeSesionRegistrado == inicioDeSesionIngresado && contrasenhaRegistrada == contrasenhaIngresada ) {
imprimir("Bienvenido al sistema " + inicioDeSesionIngresado);
} else {
imprimir("Inicio de sesión inválido, ya no le quedan más intentos");
}
</script>
</body>
</html>