Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Compliquei e deu um nó

Acabei me empolgando na hora de criar funções para testar o que aprendi, fazendo uma para calcular a idade com base no ano atual , mas está dando erro no final na hora de imprimir o número.

Acabei supondo que ele estaria devolvendo o número como uma String da primeira função, pesquisei e vi que

parseInt(String, 10)

deveria resolver isso, mas não foi o que ocorreu.

Aqui está o código

<meta charset="UTF-8">

<h3>Calculo Idade</h3>

<script>

var ano = 2018
var minhaIdade = calculaIdade(1997);
var idadeIrmao = calculaIdade(2006);

function calculaIdade(anoNascimento){
    idade = ano - anoNascimento
}

function pulaLinha(){

    document.write("<br>");

}

function mostra(texto){

    document.write(texto);
    pulaLinha();
    }

function transformaEmInteiro(numeroEmString){

    idadeEmInteiro = parseInt(numeroEmString,10)
    document.write(idadeEmInteiro)
}

mostra("A diferença de idade é " + (transformaEmInteiro(minhaIdade) - transformaEmInteiro(idadeIrmao)) )


</script>

Somente imprime: A diferença de idade é NaN.

2 respostas
solução!

Boa tarde!

Sua função transformaEmInteiro não retorna valor algum. Consegue enxergar? Além disso, ela usa o document.write. Ela deveria retornar a variável idadeEmInteiro no lugar de document.write(idadeEmInteiro).

Sua função calculaIdade também não possui retorno.

Se não me engano, você ainda não entrou na aula que ensina funções com retorno, por isso essa é a sua dificuldade. Nesse sentido, vá avançando até chegar nessa parte e com base no novo conhecimento tente resolver o problema do seu código. Será um excelente exercício.

Ok, muito obrigado pela disponibilidade Flavio!