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

Variável dentro de função e utilidade do Return

Pessoal, boa noite!

Por que quando eu coloco "var imc" o document.write não exibe o valor e só exibe se eu deixar apenas "imc"? Realmente há necessidade de informar que é uma variável? Outra questão é que ainda não vi utilidade para o "return" se eu consigo exibir o resultado do cálculo como foi feito abaixo:

<script type="text/javascript">

function calculaImc(altura, peso) {

    imc = peso / (altura * altura);


}

calculaImc(1.71,73);

document.write(imc)

</script>
2 respostas
solução!

Ilton, tudo bom?

Isso tem relação com o escopo das variáveis, indiquei um artigo logo abaixo para você ler e entender sobre o assunto.

No seu exemplo você declara uma variável global imc, por isso não precisa do return. Afinal, você alterou essa variável que é disponibilizada fora do método (calculaImc). Mas quando você coloca o var está definindo o escopo da variável loca, ou seja, ela não existe fora do método.

Mais para frente você vai entender que não é interessante ficar utilizando variáveis globais, principalmente quando entrar nas questões de encapsulamento da orientação a objetos. Assim, alguns métodos precisarão retornar os valores modificados dentro deles, e para isso vc utilizará o return.

https://medium.com/weyes/entendendo-o-uso-de-escopo-no-javascript-3669172ca5ba

Tudo bem Ronald e com você?

É que eu costumo procurar alternativas para justificar a razão das coisas seguirem esse padrão e topei nessa situação. Mas já está começando a ficar claro para mim e futuramente quando estudar essa parte de encapsulamento deverá sanar toda e qualquer dúvida.

Grande abraço!