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

Pourquoi certaines fonctions fléchées renvoient-elles « undéfini » en JavaScript ?

Patricia Arquette
Libérer: 2024-12-18 05:25:09
original
311 Les gens l'ont consulté

Why Do Some Arrow Functions Return `undefined` in JavaScript?

Pourquoi les fonctions fléchées peuvent renvoyer un résultat indéfini : l'énigme du retour explicite et du retour implicite

Les fonctions fléchées offrent une syntaxe concise pour définir des fonctions en JavaScript . Cependant, lorsqu'il s'agit de corps de fonction entourés de parenthèses ({}), les débutants rencontrent souvent un problème particulier : pourquoi ces fonctions fléchées renvoient-elles undéfini ?

Considérez l'exemple simplifié suivant :

const f = arg => { arg.toUpperCase(); };
console.log(f("testing")); // undefined
Copier après la connexion

Cette fonction de flèche est destinée à convertir l'argument en majuscule, mais elle renvoie undéfini. La raison réside dans les accolades facultatives autour du corps de la fonction flèche.

Contrairement aux fonctions fléchées avec des corps concis (sans accolades), où l'expression du corps est implicitement renvoyée, les fonctions fléchées avec la syntaxe du corps de fonction nécessitent un instruction de retour explicite. Dans l'exemple d'origine, l'absence de retour explicite entraîne le retour d'undéfini à la place de l'argument majuscule.

Pour remédier à cela, vous pouvez soit utiliser un retour explicite :

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

Ou utiliser un corps concis :

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

Exemples avec un retour explicite et un corps concis :

const f1 = arg => { return arg.toUpperCase(); };
console.log(f1("testing"));

const f2 = arg => arg.toUpperCase();
console.log(f2("testing"));
Copier après la connexion

Par en adhérant à ces règles, vous pouvez vous assurer que vos fonctions fléchées renvoient toujours la valeur souhaitée, que ce soit via des retours explicites ou implicites.

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!

source:php.cn
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