return

Termine l’exécution d’une fonction et transmet une valeur à l’endroit où la fonction a été appelée.

Sur cette page

Exemple

#
JavaScript
function discountPrice(price, percent) {
  if (percent <= 0) {
    return price
  }
  return price - (price * percent) / 100
}

console.log(discountPrice(200, 25))
console.log(discountPrice(200, 0))
Console
150
200

Définition et utilisation

#

L’instruction return termine immédiatement la fonction. La valeur écrite après elle devient le résultat de l’appel, que vous pouvez affecter à une variable ou transmettre plus loin. Le code situé après un return exécuté ne s’exécutera plus.

Une fonction sans return, ou avec un simple return sans valeur, renvoie undefined. On ne peut renvoyer qu’une seule valeur, mais ce peut être un tableau ou un objet, que vous déballerez ensuite par déstructuration.

Faites attention au saut de ligne. Si la valeur ne commence qu’à la ligne suivante, JavaScript insère un point-virgule juste après return, et la fonction renvoie undefined. Commencez une expression multiligne sur la même ligne, par ex. par une parenthèse : return (.

Syntaxe

#
Syntaxe
return
return expression

Plus d’exemples

#
Plusieurs valeurs dans un seul objet
JavaScript
function stats(points) {
  const total = points.reduce((sum, p) => sum + p, 0)
  return { total, average: total / points.length }
}

const { total, average } = stats([80, 90, 100])
console.log(total, average)
Console
270 90
Piège : une nouvelle ligne après return
JavaScript
function getBadge() {
  return
  {
    name: 'Première leçon'
  }
}

console.log(getBadge())
Console
undefined

JavaScript insère automatiquement un point-virgule après un return isolé, donc l’objet ci-dessous ne sera jamais renvoyé. Gardez l’accolade ouvrante sur la même ligne : return {.

Return implicite dans une fonction fléchée
JavaScript
const square = (n) => n * n
const noReturn = (n) => {
  n * n
}

console.log(square(4))
console.log(noReturn(4))
Console
16
undefined

Compatibilité des navigateurs

#

Largement disponible

Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.

  • Chrome
  • Edge
  • Firefox
  • Safari

Bonnes pratiques

#
  • Un return anticipé au début de la fonction gère les cas d’erreur et réduit l’imbrication du code.
  • Veillez à ce que tous les chemins de la fonction renvoient le même type de valeur. Une fonction qui renvoie parfois un nombre, parfois undefined, casse facilement les calculs suivants.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.