L'instruction return
met fin à l'exécution d'une fonction et définit une valeur à renvoyer à la fonction appelante.
Syntaxe
return [[expression]];
expression
- L'expression qu'on souhaite renvoyer. Si elle est absente, la valeur renvoyée par défaut sera
undefined
.
Description
Lorsqu'une instruction return
est utilisée dans une fonction, l'exécution de la fonction se termine. Si une valeur est fournie, elle sera renvoyée à l'appelant de la fonction. Si l'expression définissant la valeur de retour de la fonction est absente, la valeur undefined
sera renvoyée. Les instructions qui suivent causeront chacune l'arrêt de l'exécution d'une fonction :
return; return true; return false; return x; return x + y / 3;
Ajout automatique de point-virgule
L'instruction return
peut être impactée par l'ajout automatique de point-virgule (ASI en anglais). Il est interdit d'avoir un caractère de fin de ligne entre le mot-clé return
et l'expression :
return a + b; // après ASI, cela sera transformé en return; a + b; // Avertissement console : "expression non accessible après une instruction return sans point-virgule"
Note : À partir de Gecko 40 (Firefox 40 / Thunderbird 40 / SeaMonkey 2.37), un avertissement sera affiché dans la console si l'analyse du code trouve une instruction semblable à une expression après une instruction return
sans point-virgule. Voir le bug 1005110 pour plus d'informations.
Exemples
Utiliser return
La fonction suivante renvoie le carré de son argument :
function carré(x) { return x * x; }
Interrompre une fonction
Une fonction s'arrête immédiatement à l'instant où l'instruction return
est traitée.
function compteur() { for (var compte = 1; ; compte++) { // boucle infinie console.log(compte + "A"); // jusqu'à 5 if (compte === 5) { return; } console.log(compte + "B"); // jusqu'à 4 } console.log(compte + "C"); // cette instruction n'est jamais utilisée } compteur(); // Résultat dans la console : // 1A // 1B // 2A // 2B // 3A // 3B // 4A // 4B // 5A
Renvoyer une fonction
Pour en savoir plus sur les fermetures (closures), voir cet article sur les fermetures.
function magique(x) { return function calc(x) { return x * 42 }; } var réponse = magique(); réponse(1337); // 56154
Spécifications
Spécification | Statut | Commentaires |
---|---|---|
ECMAScript 1st Edition (ECMA-262) | Standard | Définition initiale. |
ECMAScript 5.1 (ECMA-262) La définition de 'Return statement' dans cette spécification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'Return statement' dans cette spécification. |
Standard | |
ECMAScript 2016 Draft (7th Edition, ECMA-262) La définition de 'Return statement' dans cette spécification. |
Projet |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) |
Fonctionnalité | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support simple | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) |