Minha Função retorna o imc sem usar o return. É normal isso?
Minha Função retorna o imc sem usar o return. É normal isso?
Boa tarde, Victor! Como vai?
Cola aqui o código da sua função para que seja possível dar uma olhada e te ajudar a entender o que está acontecendo.
Gabriel, veja só. Alterei o programa do IMC e não estou encontrando versão anterior. Mas veja esse com uma função que calcula a subtração de dois números. Não utilizo o return e calcula corretamente. Observo que diferente do Instrutor também não declaro resultado como var dentro da função. Mas depois a chamo e o cálculo acontece corretamente.
<meta charset="UTF-8">
<script>
// Funcao para pular linha
function jump()
{
document.write("<br><br>");
}
// Funcao SUBTRACAO de dois numeros
function subtracao(a,b)
{
resultado = a - b;
}
var num1 = 0;
var num2 = 0;
var num1 = prompt("Digite o primeiro número: ");
var num2 = prompt("Digite o segundo número: ");
subtracao(num1,num2);
document.write(num1 + " - " + num2 + " = " + resultado);
</script>
Victor, esse comportamente está acontecendo justamente pq vc não está fazendo como o instrutor fez o que está acarretando nesse problema! Ao criar a variável resultado
sem usar a palavra reservada var
o Javascript vai criar uma variável global, por isso o seu código está funcionando. No entanto, criar variável global não é uma boa prática por permitir que elas sejam acessadas e modificadas em qualquer parte do nosso código, mtas vezes acarretando em erros ou em comportamentos não esperados como vc acabou de experimentar.
Quando vc passar a fazer da forma correta:
function subtracao(a, b) {
var resultado = a - b;
}
Vc vai perceber que seu código deixará de funcionar e que vc terá que fazer alguns ajustes para deixar o código da forma como foi visto em aula, onde um desses ajustes, será acrescentar o return
:
function subtracao(a, b) {
var resultado = a - b;
return resultado;
}
Gabriel, Perfeito.
Muito Obrigado!
Por nada, Victor!
Sempre que tiver alguma dúvida é só mandar pro pessoal aqui no fórum!
Grande abraço e bons estudos!