Laercio deveria ter colocado a instrução return.
apesar de eu entender que faltou o return, pela lógica do exercício após a aula. Ainda acho um pouco confuso.
Laercio deveria ter colocado a instrução return.
apesar de eu entender que faltou o return, pela lógica do exercício após a aula. Ainda acho um pouco confuso.
Olá Fabrizio! Tudo bem?
Sua dúvida é a respeito de como o return
funciona?
Utilizamos o return
para devolver uma "resposta" ou um "resultado" da nossa função.
Vamos entender melhor com o exemplo abaixo:
<meta charset="UTF-8">
<script>
function pulaLinha() {
document.write("<br>");
}
function mostra(frase) {
document.write(frase);
pulaLinha();
}
<!-- Esta função não está nos retornando um resultado -->
function calculaImc(altura, peso) {
var imc = peso / (altura * altura);
}
var imcCalculado = calculaImc(1.77, 75);
mostra("O meu IMC é : " + imcCalculado);
</script>
Se não utilizamos o
return
, como no exemplo acima... nosso código é executado, mas nossa funçãocalculaImc
irá executar o cálculo, e não nos devolverá o resultado. Então na maneira como o código está acima, a variávelimcCalculado
não receberá o resultado da funçãocalculaImc
.
Para entender melhor o efeito do return
, imagine que nossa função é uma calculadora... na maneira que ela trabalha sem o return
, é como se passássemos uma conta para ser solucionada, mas após solucionar a conta, ela simplesmente não nos exibe o resultado na sua tela, guardando para si mesma.
Se utilizamos uma função que deve nos retornar um resultado, obrigatóriamente teremos que utilizar o return
, caso contrário a função irá guardar para ela o resultado que precisamos. Veja o exemplo abaixo, com o nosso código que anteriormente não devolveria o resultado da função calculaImc
, mas dessa vez utilizando o return
:
<meta charset="UTF-8">
<script>
<!-- Esta função não necessita do uso de return -->
function pulaLinha() {
document.write("<br>");
}
function mostra(frase) {
document.write(frase);
pulaLinha();
}
<!-- Agora nossa função calculaImc possui o retorno que esperavamos -->
function calculaImc(altura, peso) {
var imc = peso / (altura * altura);
return imc;
}
var imcCalculado = calculaImc(1.77, 75);
mostra("O meu IMC é : " + imcCalculado);
</script>
Agora a nossa função
calculaImc
nos retorna o valor que esperávamos, mas percebeu que as outras duas funções não utilizam oreturn
?
Existem funções que não possuem o objetivo de nos dar um resultado... são funções que simplesmente executam um papel, como a nossa função pulaLinha
. Perceba que o objetivo dessa função não é realizar qualquer tipo de cálculo e nos devolver a resposta, mas sim executar o código que está em seu escopo (dentro da função).
A explicação foi clara?
Se continuar com dúvidas, é só falar 😄