Maison >interface Web >js tutoriel >Pourquoi certaines fonctions fléchées renvoient-elles « undéfini » en 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
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 ^^^^^^
Ou utiliser un corps concis :
const f = arg => arg.toUpperCase();
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"));
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!