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
Libérer: 2024-12-20 09:33:10
original
952 Les gens l'ont consulté

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(); };
Copier après la connexion

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();
Copier après la connexion

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

console.log(f("testing")); // "TESTING"
Copier après la connexion
Copier après la connexion

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(); };
Copier après la connexion

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

console.log(f("testing")); // "TESTING"
Copier après la connexion
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal