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?

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