La parola chiave di ritorno

Utilizza return per specificare il valore che la funzione deve produrre come risultato o il risultato finale. Quando l'interprete raggiunge un'istruzione return, la funzione che contiene l'istruzione, termina immediatamente e il valore specificato viene restituito il contesto in cui è stata chiamata la funzione:

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

myFunction();
> 4

Una funzione che restituisce un valore può essere trattata efficacemente come i dati che contiene, simile a una variabile:

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

myFunction() + myFunction();
> 8

Un'istruzione return senza un'espressione termina la funzione e restituisce undefined:

const myFunction = function() {
   return;
}

myFunction();
> undefined

Poiché la parola chiave return indica la fine di una funzione, qualsiasi codice segue che un return rilevato non viene eseguito:

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

myFunction();
> true

Inoltre, il codice che segue un'istruzione return rilevata potrebbe causare un errore un avviso (ma non un errore) in alcuni browser di sviluppo software:

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

myFunction();
> true

Anche in questo caso, si applica solo a un'istruzione return rilevata durante il della funzione, non qualsiasi codice che segue un'istruzione return in sequenza:

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."

"Cortocircuito" una funzione che utilizza un valore return iniziale può consentire rispetto a una singola istruzione return alla fine di una funzione. Ad esempio, funzione seguente determina se un valore passato è una stringa contenente cinque o più caratteri. Se il valore passato non è una stringa letterale, il codice che conta i caratteri non è necessario e la funzione può restituire un false il risultato immediatamente:

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

Espressioni delle funzioni freccia sono univoche in quanto la parola chiave return è implicita quando il corpo di una funzione freccia contiene una singola espressione e nessuna sintassi di blocco:

const myFunction = () => 2 + 2;

myFunction();
> 4

Se utilizzi la sintassi a blocchi per definire il corpo della funzione freccia, viene restituito un return esplicito è obbligatorio, anche se il corpo della funzione contiene solo una singola espressione:

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

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

myFunction();
> 4

Verifica le tue conoscenze

A cosa serve return?

Specificare il risultato finale di una funzione.
Restituire il codice all'inizio della funzione.