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).