Maison > interface Web > js tutoriel > Pourquoi certaines fonctions fléchées JavaScript renvoient-elles « non défini » ?

Pourquoi certaines fonctions fléchées JavaScript renvoient-elles « non défini » ?

Patricia Arquette
Libérer: 2024-12-20 08:36:10
original
454 Les gens l'ont consulté

Why Do Some JavaScript Arrow Functions Return `undefined`?

Fonctions fléchées et instructions de retour explicites

En JavaScript, les fonctions fléchées fournissent une syntaxe concise pour définir des fonctions. Cependant, un piège courant consiste à rencontrer des valeurs non définies lors de l'appel de fonctions fléchées qui utilisent des corps de bloc.

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

const f = arg => { arg.toUpperCase(); };
Copier après la connexion

Bien que cette fonction puisse paraître logique, elle renvoie un défini lorsque appelé. Pour comprendre pourquoi, nous devons examiner la sémantique des fonctions fléchées.

Lors de l'utilisation du corps de bloc (avec accolades) dans une fonction flèche, le comportement de retour implicite diffère du corps concis (sans accolades). Dans la version corps de bloc, la valeur renvoyée par la fonction doit être explicitement spécifiée à l'aide du mot-clé return.

const f = arg => { return arg.toUpperCase(); };
Copier après la connexion

Avec cette instruction return explicite, la fonction renvoie correctement la valeur attendue : "TESTING".

Vous pouvez également utiliser la syntaxe du corps concis pour obtenir implicitement le même résultat :

const f = arg => arg.toUpperCase();
Copier après la connexion

Dans ce cas, la dernière expression du corps, arg.toUpperCase(), est automatiquement renvoyé par la fonction flèche.

Par conséquent, pour éviter les valeurs non définies lors de l'appel de fonctions fléchées avec des corps de bloc, spécifiez toujours explicitement la valeur de retour à l'aide du mot-clé return ou utilisez la syntaxe de corps concise .

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