A palavra-chave de retorno

Use return para especificar o valor que a função precisa produzir como resultado final. resultado. Quando o intérprete chega a uma instrução return, a função que contém a instrução termina imediatamente e o valor especificado é retornado ao o contexto em que a função foi chamada:

const myFunction = function() {
   return 2 + 2;
}

myFunction();
> 4

Uma função que retorna um valor pode ser tratada efetivamente como os dados que ela contém, semelhante a uma variável:

const myFunction = function() {
   return 2 + 2;
}

myFunction() + myFunction();
> 8

Uma instrução return sem uma expressão encerra a função e retorna. undefined:

const myFunction = function() {
   return;
}

myFunction();
> undefined

Como a palavra-chave return indica o fim de uma função, qualquer código que segue um return encontrado não é executado:

const myFunction = function() {
   return true;
   console.log( "This is a string." );
}

myFunction();
> true

Além disso, o código após uma instrução return encontrada pode resultar em uma aviso (mas não um erro) nos navegadores consoles de desenvolvimento:

const myFunction = function() {
   return true;
   console.log( "This is a string." );
}
> unreachable code after return statement

myFunction();
> true

Novamente, isso só se aplica a uma instrução return encontrada durante execução da função, não qualquer código que siga uma instrução return sequencialmente:

const myFunction = function( myParameter ) {
   if( myParameter === undefined ) {
    return "This is the result.";
   }
   return "This is the alternate result.";
}

myFunction();
> "This is the result."

myFunction( true );
> "This is the alternate result."

"Curto-circuito" uma função que usa um return inicial pode permitir uma código do que uma única instrução return no final de uma função. Por exemplo, o seguinte função determina se um valor passado é uma string que contém cinco ou mais caracteres. Se o valor passado não for um literal de string, o código que conta que os caracteres são desnecessários, e a função pode retornar um false imediatamente:

function myFunction( myString ) {
   if( typeof myString !== "string" ) {
    return false;
   }
   if( myString.length >= 5 ) {
    return true;
   } else {
    return false;
   }
}

myFunction( 100 );
> false

myFunction( "St" );
> false

myFunction( "String." );
> true

Expressões de função de seta são únicos, já que a palavra-chave return está implícita quando um corpo de função de seta contém uma única expressão e nenhuma sintaxe de bloco:

const myFunction = () => 2 + 2;

myFunction();
> 4

Se você usar a sintaxe de bloco para definir o corpo da arrow function, uma return explícita é obrigatório, mesmo que o corpo da função contenha apenas uma expressão:

const myFunction = () => { 2 + 2 };

myFunction();
> undefined
const myFunction = () => { return 2 + 2 };

myFunction();
> 4

Teste seu conhecimento

Para que o return é usado?

Especificar o resultado final de uma função.
Retornando o código para o início da função.