Maison > interface Web > js tutoriel > Pourquoi les fonctions fléchées ont-elles besoin de retours explicites lors de l'utilisation de déclarations de bloc ?

Pourquoi les fonctions fléchées ont-elles besoin de retours explicites lors de l'utilisation de déclarations de bloc ?

Linda Hamilton
Libérer: 2024-12-18 09:54:18
original
310 Les gens l'ont consulté

Why Do Arrow Functions Need Explicit Returns When Using Block Declarations?

Pourquoi les fonctions fléchées sans déclarations de bloc doivent renvoyer des valeurs explicitement

Les fonctions fléchées, introduites dans ES6, simplifient la syntaxe des fonctions JavaScript. Cependant, elles peuvent se comporter différemment des fonctions normales lorsqu'il s'agit de renvoyer des valeurs.

Considérez la fonction fléchée suivante avec une déclaration de bloc (entre accolades) :

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

Appel de cette fonction ne renvoie pas de valeur, ce qui entraîne l'impression d'undéfini sur la console :

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

Contrairement aux fonctions normales, les fonctions fléchées avec des déclarations de bloc ne renvoient pas la valeur résultat de l’expression de bloc implicitement. Au lieu de cela, une instruction return explicite est nécessaire pour spécifier la valeur de retour. Ainsi, la fonction flèche doit être écrite comme :

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

Alternativement, la fonction flèche peut être déclarée de manière concise (sans accolades de bloc). Dans ce cas, le résultat de l'expression suivant la flèche est implicitement renvoyé :

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

Exemples :

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

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

f1 et f2 renvoient tous deux la chaîne majuscule "TESTING". En comprenant la différence entre les fonctions fléchées avec et sans déclarations de bloc, vous pouvez vous assurer que vos fonctions fléchées renvoient les valeurs attendues.

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