Olá, Mariana, como vai?
Sobre a frase de erro aparecer duas vezes, isso ocorre conforme a proposta do exercício. Primeiro é solicitado um alerta direto com o texto “Erro! Preencha todos os campos” e, em seguida, a criação de uma variável com essa mesma mensagem para exibi-la novamente. Portanto, ver o mesmo texto duas vezes no output é o comportamento esperado nessa prática.
Analisando seu código, há apenas alguns pontos de ajuste em relação ao que foi pedido. O desafio orienta validar se a idade é maior ou igual a 18, mas a condição foi escrita utilizando igualdade estrita com 18 e outro if separado para 17. Dessa forma, idades acima de 18 não entram na validação.
Um exemplo de validação mais alinhada ao exercício seria:
if (idade >= 18) {
alert("Pode tirar a habilitação");
}
Caso queira manter um retorno para menores de idade, pode complementar com else, mantendo a lógica central solicitada.
No mais, você contemplou as declarações de variáveis, alerts e prompts conforme a atividade propõe, inclusive adicionando variações próprias, o que é positivo para fixação do conteúdo.
O fórum segue à disposição para novos compartilhamentos e dúvidas.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!