4
respostas

Sobre o Return

Oi. entendi o porque de usar o return, mas não entendi do porque de ser obrigado de usar o return. Explico: Quando chamo a função calculaImc(100,1.70) ela já exibe o resultado na tela. Quando insiro a mesma função na variável resultadoImc, o resultado exibido é NaN. Não consigo entender a da função calculaImc(100,1.70) não entregar o resultado a variável resultadoImc diretamente. Também não sei se é uma dúvida pertinente, mas deixo aqui pois está me deixando cabreiro.

4 respostas

o return serve para retornar o resultado a função

Como vc já disse, quando vc usa return, vc pode atribuir o resultado da função numa variável; e quando não tem return, não. Assim, se a função que vc chama está mostrando o resultado e não o está retornando, não será possível atribuir o valor de retorno a uma variável por não haver retorno.

Acredito que para compreendermos melhor a sua dúvida, vc poderia postar o código que vc está com dúvida aqui.

Oi.

A chamada da função "calculaImc(100, 1.70)" não entrega o resultado da variável "resultadoImc" diretamente, pelo fato de que o código segue um algoritmo, uma sequência.

Quando se chama somente a função, com os parâmetros para o cálculo, o resultado é apresentado e o código se encerra:

function calculaImc(altura, peso) {

var imc = peso / (altura, peso) mostra("O imc calulado é " + imc);

}

calculaImc(1.71, 73);

No entanto, especificamente na dúvida que você trouxe, o código continua, a função está sendo chamada dentro de uma variável e depois, no final do código, outra função é chamada para mostrar o resultado.

Ou seja, para ser mostrado o resultado é preciso retornar, ou, pôr na sequência do código, o algoritmo do cálculo IMC, que se encontra dentro da função "calculaImc(altura, peso)" na variável "imc", que será sequenciada antes da variável "resultadoImc", que vai realizar o cálculo com a informação recebida, e a solução será exibido no final do código.

Portanto, conforme consta em https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Statements/return:

"A declaração return finaliza a execução de uma função e especifica os valores que devem ser retornados para onde a função foi chamada."

Espero ter ajudado. Bons estudos!

Obrigado Valeska, Rafael e Fábio.

Rafael, tentei voltar com o código mas fiz a bobagem de colar outro por cima. Como estava em um bom ritmo de aprendizagem resolvi voltar a ele mais tarde para publicar aqui, mas a resposta do Fábio encerra a questão pra mim. Agradeço a intenção!!

Fábio, entendi sua explicação e graças a ela percebi também que deixei de considerar que na própria função havia a instrução de publicação no html da página, por isso ela exibia a resposta. Estou fazendo um estudo mais rápido em função de uma vaga de curso e acabei deixando passar batido. Agora está esclarecido. Obrigado de novo!