return

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

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

Sintaxe

return [[expression]];
expression

A expressão cujo valor será retornado. Se omitido, undefined é retornado.

Descrição

Quando uma declaração return é usada em um corpo de função, a execução dessa função é parada. Se especificado, um dado valor é retornado à quem chamou a função. Se a expressão for omitida, undefined será retornado. Todas as declarações return a seguir param a execução da função:

js
return;
return true;
return false;
return x;
return x + y / 3;

Inserção Automática de Ponto-e-Vírgula

A declaração return é afetada pela inserção automática de ponto e vírgula (ASI). Nenhum terminador de linha é permitido entre a palavra-chave return e a expressão.

js
return
a + b;

é transformado pelo ASI em:

return;
a + b;

O console irá alertar "unreachable code after return statement" (código inacessível após a declaração return).

Nota: A partir do Gecko 40, um alerta é mostrado no console se um código inacessível é encontrado após uma declaração return.

Exemplos

return

A função a seguir retorna o quadro do seu argumento, x, quando x é um número.

js
function square(x) {
  return x * x;
}

Interrompendo uma função

Uma função para imediatamente no ponto em que return é chamado.

js
function counter() {
  for (var count = 1; ; count++) {
    // loop infinito
    console.log(count + "A"); // até 5
    if (count === 5) {
      return;
    }
    console.log(count + "B"); // até 4
  }
  console.log(count + "C"); // nunca aparece
}

counter();

// Saída:
// 1A
// 1B
// 2A
// 2B
// 3A
// 3B
// 4A
// 4B
// 5A

Retornando uma função

Veja também o artigo sobre Closures.

js
function magic(x) {
  return function calc(x) {
    return x * 42;
  };
}

var answer = magic();
answer(1337); // 56154

Especificações

Specification
ECMAScript Language Specification
# sec-return-statement

Compatibilidade com navegadores

BCD tables only load in the browser

Veja também