Mot clé renvoyé

Utilisez return pour spécifier la valeur que la fonction doit produire comme résultat final. Lorsque l'interpréteur atteint une instruction return, la fonction qui contient cette instruction se termine immédiatement et la valeur spécifiée est renvoyée au contexte dans lequel la fonction a été appelée:

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

myFunction();
> 4

Une fonction qui renvoie une valeur peut être traitée efficacement comme les données qu'elle contient, à l'instar d'une variable:

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

myFunction() + myFunction();
> 8

Une instruction return sans expression met fin à la fonction et renvoie undefined:

const myFunction = function() {
   return;
}

myFunction();
> undefined

Étant donné que le mot clé return signale la fin d'une fonction, tout code qui suit un élément return rencontré n'est pas exécuté:

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

myFunction();
> true

De plus, le code qui suit une instruction return rencontrée peut entraîner un avertissement (mais pas une erreur) dans les consoles de développement de certains navigateurs:

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

myFunction();
> true

Là encore, cela ne s'applique qu'à une instruction return rencontrée lors de l'exécution de la fonction, et non au code qui suit une instruction return de manière séquentielle:

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

Le fait de "court-circuiter" une fonction à l'aide d'une return initiale peut permettre un code plus concis qu'une instruction return unique à la fin d'une fonction. Par exemple, la fonction suivante détermine si une valeur transmise est une chaîne contenant au moins cinq caractères. Si la valeur transmise n'est pas un littéral de chaîne, le code qui compte les caractères n'est pas nécessaire et la fonction peut renvoyer un résultat false immédiatement:

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

Les expressions de fonction fléchée sont uniques en ce sens que le mot clé return est implicite lorsque le corps d'une fonction fléchée contient une seule expression et aucune syntaxe de bloc:

const myFunction = () => 2 + 2;

myFunction();
> 4

Si vous utilisez une syntaxe de bloc pour définir le corps de la fonction fléchée, un élément return explicite est requis, même si le corps de la fonction ne contient qu'une seule expression:

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

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

myFunction();
> 4

Testez vos connaissances

À quoi sert return ?

Spécifier le résultat final d'une fonction
Renvoi du code au début de la fonction.