return
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
L'instruction return
met fin à l'exécution d'une fonction et définit une valeur à renvoyer à la fonction appelante.
Exemple interactif
Syntaxe
return [expression];
expression
-
L'expression dont on souhaite renvoyer la valeur. 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. Par exemple, voici une fonction qui renvoie le carré de son argument x
(où x
est un nombre) :
function carre(x) {
return x * x;
}
var demo = carre(3);
// demo vaudra alors 9
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, 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 Firefox 1005110 pour plus d'informations.
Pour éviter ce problème et l'insertion automatique, on peut, si besoin, utiliser des parenthèses.
return (
a + b;
);
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() {
return function calc(x) {
return x * 42;
};
}
var réponse = magique();
réponse(1337); // 56154
Spécifications
Specification |
---|
ECMAScript Language Specification # sec-return-statement |
Compatibilité des navigateurs
BCD tables only load in the browser