Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

IMC

Boa noite!

Me tira uma duvida, pq eu não posso chamar a função mostra fora da função calculaImc?

<meta charset= "UTF-8">

<script>

    function pulaLinha(){
        document.write("<br>");
    }

    function mostra (frase){
        document.write(frase);
        pulaLinha()
    }
    function calculaImc (peso, altura){
        var imc = peso /(altura*altura);

    }

    calculaImc (110,178)
       mostra ("O IMC calculado é " + imc);

</script>

fiquei com essa duvida pq afinal o valor é passado fora da função. OBS: Eu vi no console que existe um erro de variavel , queria apenas entender melhor.

1 resposta
solução!

Fabiana, tudo bom?

Se você der uma olhada no Console (apertando F12 se estiver no Chrome) vai ver essa mensagem:

Uncaught ReferenceError: imc is not defined

Quando você roda o método mostra() fora do calculaImc() não é instanciada a variável imc e ocorre o erro. A variável imc é de escopo local, assim ela só existe dentro do contexto do método calculaImc(). De forma isolada você pode usar o método mostra(), mas não pode usar a variável imc. Por exemplo, o código abaixo vai funcionar:

<meta charset= "UTF-8">

<script>

    function pulaLinha(){
        document.write("<br>");
    }

    function mostra (frase){
        document.write(frase);
        pulaLinha()
    }

    function calculaImc (peso, altura){
        var imc = peso /(altura*altura);
    mostra ("O IMC calculado é " + imc);

    }

    calculaImc (110,178)
    mostra ("O IMC calculado é ");

</script>

Mas note que a segunda mensagem não traz o valor.