Não entendi pra que precisa confirmar a idade, mas enfim.
Como já disseram, não precisa comparar um booleano com true
ou false
, basta fazer if (confirmaçao)
para verificar se é verdadeiro, ou if (!confirmaçao)
para saber se é falso.
Mas na verdade, nesse caso nem precisa guardar o resultado do confirm
em uma variável, pois poderia ser apenas:
let confirmaçao;
if (confirm('Confirma sua idade ?')) {
confirmaçao = 'Confirmada!';
} else {
confirmaçao = 'Nao confirmada!';
}
Ou ainda:
let confirmaçao = confirm('Confirma sua idade ?') ? 'Confirmada!' : 'Nao confirmada!';
Outro detalhe é que Number
aceita também números quebrados, mas faz sentido a idade ser 12.5
ou 1.23456
?
Provavelmente só faz sentido ser números inteiros positivos, então seria melhor usar parseInt
. E poderia ir além, e ficar pedindo para digitar de novo, até que o número digitado seja válido:
let idade;
while (true) {
idade = parseInt(prompt('Digite sua idade'));
if (isNaN(numero)) {
alert('Não foi digitado um número válido');
else if (numero <= 0) {
alert('idade deve ser maior que zero');
} else {
break; // sai do while
}
}
Agora se for digitado 10.5
, o resultado será 10
(pois parseInt
para de ler quando encontra o ponto). Claro que daria para melhorar mais a validação, mas enfim, foi só para mostrar que Number
não é uma solução mágica, e que vc deve pensar bem sobre o tipo de dado que será aceito.
E repare que usei aspas para as strings. Claro que usar `
também funciona, mas este caractere serve para as template strings, que vc usou no último alert
- elas fazem sentido quando se quer interpolar variáveis dentro da string.
E como eu já disse em outro post seu, coloquei ponto-e-vírgula no final das linhas. Pode parecer "frescura", e sei que o JavaScript "aceita" o código sem ponto e vírgula e "funciona", mas isso evita algumas situações bizarras que podem ocorrer se você não usá-los, como essa e essa (veja mais sobre isso aqui).