Maison >interface Web >js tutoriel >Pourquoi les fonctions fléchées avec des accolades renvoient-elles « undéfini » à moins qu'elles ne soient explicitement renvoyées ?

Pourquoi les fonctions fléchées avec des accolades renvoient-elles « undéfini » à moins qu'elles ne soient explicitement renvoyées ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-20 09:33:10859parcourir

Why Do Arrow Functions with Curly Braces Return `undefined` Unless Explicitly Returned?

Fonctions fléchées : comprendre la valeur de retour manquante

Dans le domaine de JavaScript, les fonctions fléchées sont devenues un choix populaire pour des messages concis et expressifs. code. Cependant, un piège courant peut survenir lors de l'utilisation de la version du corps de la fonction (avec des accolades).

Le problème : valeur de retour manquante

Considérez la fonction fléchée suivante :

const f = arg => { arg.toUpperCase(); };

Lorsqu'elle est invoquée, cette fonction renvoie undéfini au lieu de la valeur attendue. Pourquoi ?

Dévoilement du retour implicite

Dans les fonctions fléchées, l'instruction return est implicitement appliquée lors de l'utilisation du corps concis (sans accolades). Cela signifie que le résultat de l'expression entre parenthèses devient la valeur renvoyée.

Exemple de corps concis :

const f = arg => arg.toUpperCase();

Maintenant, l'appel de cette fonction renvoie la chaîne souhaitée :

console.log(f("testing")); // "TESTING"

Retour explicite pour la fonction Corps

Cependant, lors de l'utilisation d'accolades, une instruction return explicite est nécessaire pour indiquer ce qui doit être renvoyé. Sinon, la fonction retournera undefined.

Exemple de retour explicite :

const f = arg => { return arg.toUpperCase(); };

L'appel de cette fonction modifiée produit le même résultat :

console.log(f("testing")); // "TESTING"

Rappelez-vous : Un retour implicite existe dans le corps concis des fonctions fléchées, tandis qu'un retour explicite est requis lors de l'utilisation d'accolades pour le corps de fonction. Comprendre cette distinction est crucial pour éviter des valeurs non définies inattendues dans votre code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn