Oi, Edson! Tudo bem?
O problema ocorre pois na expressão "Flávio nasceu em " + 2016 - 39
, por exemplo, o JavaScript primeiro tenta fazer a concatenação e após isso tenta calcular a string concatenada menos o valor numérico 39, o que resulta em NaN
(Not a Number), pois não conseguimos realizar essa operação e retornar um valor numérico válido.
Devido a isso, precisamos usar parênteses para garantir que a operação funcione como o esperado, de acordo com o exemplo abaixo:
<meta charset="UTF-8">
<script>
document.write("Flávio nasceu em " + (2016 - 39));
document.write("Joaquim nasceu em " + (2016 - 20));
document.write("Barney nasceu em " + (2016 - 40));
</script>
Com essa modificação, o JavaScript primeiro calcula o valor dentro dos parênteses (por exemplo, 2016 - 39
) e depois realiza a concatenação com a string "Flávio nasceu em "
, resultando na saída correta, como "Flávio nasceu em 1977"
.
Espero ter ajudado!
Um forte abraço e bons estudos!