Também estranhei isso. E aliás a função parece pior do que a forma utilizada anteriormente com as variáveis. Ao utilizar a função você reduz linhas do código porém fica fixo a uma frase pronta com o "mostra" sem especificar nomes cada pessoa e seu IMC como estava sendo feito antes...
Olá Gabriel e André. Tudo certo?
Nesta aula ainda não aprendemos a declaração return
de uma função.
Como o próprio nome já diz, o return
define o valor a ser retornado de uma função. Se quiser saber mais sobre return
confere aqui [https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Statements/return](link devoloper mozilla)
Voltando ao seu problema. Se no lugar de var imc = peso / (altura * altura);
, usarmos return imc = peso / (altura * altura);
já é possível chamar a função mostra()
fora da funçãocalculaImc()
.
Mantendo a estrutura ensinada na aula o código poderia ficar assim:
<script>
function pulaLinha() {
document.write("<br>");
}
function mostra(frase) {
document.write(frase);
pulaLinha();
}
// Função para cálculo do IMC
function calculaImc(peso, altura) {
return imc = peso / (altura * altura);
}
// Variáveis para calcular IMC
var pesoFlavio = 73;
var alturaFlavio = 1.71;
var imcFlavio = calculaImc(pesoFlavio, alturaFlavio);
var pesoAmigo = 68;
var alturaAmigo = 1.72;
var imcAmigo = calculaImc(pesoAmigo, alturaAmigo);
// Chamando função mostra para exibir no HTML
mostra("O imc do Flávio é " + imcFlavio);
mostra("O imc do amigo do Flávio é " + imcAmigo);
</script>
Continuando o curso vi que o professor explicou o assunto no vídeo da atividade 05 - Retorno de funções da aula 05 - Pratique resolvendo problemas do seu dia a dia. https://cursos.alura.com.br/course/logica-programacao-javascript-html/task/17705