Mot clé renvoyé

Utilisez return pour spécifier la valeur que la fonction doit produire en tant que valeur finale résultat. Lorsque l'interpréteur atteint une instruction return, la fonction contient cette instruction, et la valeur spécifiée est renvoyée à le 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 efficacement traitée comme les données qu'elle contient, comme pour 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 indique la fin d'une fonction, tout code qui Suit un 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 une (mais pas d'erreur) dans certains navigateurs consoles de développement:

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

myFunction();
> true

Encore une fois, cela ne s'applique qu'à une instruction return rencontrée lors de la l'exécution de la fonction, et non de tout 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."

"Court-circuit" Une fonction qui utilise un return précoce permet d'obtenir code qu'une seule instruction return à la fin d'une fonction. Par exemple, la fonction suivante détermine si une valeur transmise est une chaîne contenant cinq ou plus de caractères. Si la valeur transmise n'est pas un littéral de chaîne, le code compte les caractères n'est pas nécessaire et la fonction peut renvoyer un 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

Expressions de la fonction fléchée sont uniques en ce sens que le mot clé return est implicite lorsqu'un corps de 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 obligatoire, 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
Renvoyez le code au début de la fonction.