1
resposta

porque temos que colecar mostra ("O imc calculado é " + imc) dentro da função e nâo pode ser fora como estava na var?

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

}

Porque não funciona fora da função?

function calculaImc(altura , peso)
{
    var imc = peso / (altura * altura); 
}
calculaImc(1.71, 73);
calculaImc(1.72, 68); 

mostra("O imc calculado é " + imc)

1 resposta

Oi Michelle!

neste caso não funcionaria deixar o var fora da função, pois ele foi declarado dentro dela. Isso faz com que ele seja acessível só de dentro da função.

Isto traz algumas vantagens como evitar conflito de nomes de variáveis, e deixar o código um pouco mais fácil de entender pro futuro quando houver muitas coisas sendo feitas em um arquivo só! :)

Há outras formas de usar este valor de fora da função como retornar o valor e usar este retorno.. Imagino que ainda vai ser parte do curso..

Também daria pra usar variáveis globais (apesar de não ser muito recomendável)

Acredito que ainda vai ser visto no curso como usar retornos, mas para efeito de curiosidade, seria algo tipo isto:

function calculaImc (altura, peso) {
    var imc = peso / (altura * altura);
    return imc;
}

var imcPessoaA = calculaImc(1.71, 73);

mostra("O imc calculado é " + imcPessoaA);

Qualquer dúvida me avise!