Instrução return
Na lição anterior você enviou valores para dentro de uma função. Programas reais também costumam precisar de um valor de saída — um total, um rótulo, sim/não — para o chamador continuar com o resultado. A palavra-chave que envia esse resultado é return.
O que return faz
No corpo você escreve return expression;. O JavaScript avalia a expressão, entrega o valor ao chamador e termina aquela chamada. O chamador pode guardar: let total = add(3, 4); — aqui total vira 7.
return não é o mesmo que imprimir
📊 return versus console.log
| Ideia | O que faz | Quem vê |
|---|---|---|
return value |
envia value ao chamador |
sua próxima linha de código |
console.log(value) |
imprime value no console |
quem olha o console |
| ambos | você pode imprimir e também devolver | o log é para olhos; return para o programa |
sem return |
a chamada termina com undefined |
guardar a chamada dá undefined |
depois de return |
as linhas seguintes dessa chamada são puladas | a saída antecipada é intencional |
Imprimir ajuda a espiar. Devolver permite que o resto do programa use a resposta. Iniciantes costumam só imprimir dentro e estranham que let x = f() seja undefined — porque nada foi devolvido.
function add(a, b) {
return a + b;
}
let total = add(3, 4);
console.log(total);
Capture o resultado
add não imprime sozinha. Ela devolve 7. O chamador guarda isso em total e depois imprime. Mude os argumentos, mantenha o corpo — a soma devolvida segue as entradas.
function greet(name) {
return "Hello, " + name;
}
let line = greet("Sara");
console.log(line);
Monte um valor para depois
greet monta uma string e a devolve. line guarda Hello, Sara. Você pode passar line à página, a outra função ou a um teste — return abre o reuso fora do corpo.
function demo() {
console.log("first");
return 1;
console.log("second");
}
demo();
Nada depois de return executa
Esta chamada imprime first e depois devolve 1. A linha que imprimiria second nunca roda. Não é bug — return termina a chamada na hora.
function label(score) {
if (score < 0) {
return "invalid";
}
return "ok";
}
console.log(label(-1));
console.log(label(10));
Saia cedo quando a resposta já está pronta
Se score for negativo, a função devolve "invalid" e pula o resto. Senão "ok". Este return antecipado mantém o caminho feliz curto e legível.
function shout(msg) {
console.log(msg);
}
let result = shout("hi");
console.log(result);
Esqueceu o return?
shout só imprime. A chamada termina, mas com undefined. Guardá-la coloca undefined em result. Se precisar de um valor fora, escreva um return explícito.
Coloque o valor devolvido na página
Monte a mensagem com return e escreva essa string num parágrafo. A função foca em produzir texto; o código da página decide onde aparece.
Mostre return na página
Declare uma função que devolva uma string de boas-vindas, chame-a e coloque o resultado num parágrafo.
<!DOCTYPE html>
<html>
<head>
<title>return — page</title>
</head>
<body>
<p id="msg">…</p>
<script>
function welcome(guest) {
return "Hello, " + guest;
}
let box = document.getElementById("msg");
box.textContent = welcome("Omar");
</script>
</body>
</html>
A página mostra Hello, Omar. welcome devolveu a string; a linha seguinte escreveu-a no parágrafo. Mude só o argumento, atualize e leia a nova linha. Próxima lição: funções seta — uma forma mais curta de escrever algumas dessas funções.
Experimente você
- Escreva
function sum(x, y)que devolvax + y, guarde a chamada numa variável e imprima-a. - Escreva
function hi(name)que devolva"hi "maisname, depois imprima a string devolvida. - Coloque um
console.logdepois de umreturnnuma função; confirme que a linha não imprime. - Escreva um guarda: se
n === 0devolva"zero", senão"nonzero". - Chame uma função que só faz
console.loge guarde a chamada; confirmeundefined. - No demo HTML mude só a string do argumento, atualize e leia o parágrafo.
Erros comuns
- Usar só
console.logdentro e esperar quelet x = f()tenha um valor útil - Esquecer de guardar ou usar o valor devolvido na chamada
- Escrever código depois de
returne estranhar por que não roda - Escrever
return;vazio quando queriareturn value; - Procurar truques de parâmetros aqui — esta página é sobre saídas; entradas foram a lição anterior
Resumo
returnenvia um valor ao chamador- Guarde ou use esse valor fora da função
- Depois de
return, o resto dessa chamada é pulado - Return antecipado é uma saída limpa em casos especiais
- Sem
return(oureturnvazio) → a chamada dáundefined - Atualizações de página podem usar uma string devolvida
- Próximo: funções seta — sintaxe compacta de função
🧠 Teste Seu Conhecimento
Teste Seu Conhecimento
Desafie-se com este questionário interativo e veja o quão bem você entende o tópico
📝 Instruções
- Leia cada pergunta cuidadosamente
- Selecione a melhor resposta para cada pergunta
- Você pode refazer o quiz quantas vezes quiser
- Seu progresso será mostrado no topo