Maison > interface Web > js tutoriel > À quoi sert le point d'exclamation dans les expressions de fonction JavaScript ?

À quoi sert le point d'exclamation dans les expressions de fonction JavaScript ?

DDD
Libérer: 2024-12-20 13:03:17
original
909 Les gens l'ont consulté

What Does the Exclamation Mark Do in JavaScript Function Expressions?

Le point d'exclamation énigmatique dans les expressions de fonction JavaScript

Dans le domaine du code JavaScript, vous avez peut-être rencontré un spectacle curieux : un point d'exclamation précédant une déclaration de fonction. Cela semble avoir une signification profonde qui modifie la nature même de la fonction.

Le point d'exclamation, !, transforme une déclaration de fonction en une expression de fonction. Cela signifie que la fonction est désormais traitée comme une valeur qui peut être assignée à une variable, passée en argument ou même renvoyée par une autre fonction.

Pour comprendre l'implication, considérons le code suivant :

function foo() {}
Copier après la connexion

Il s'agit d'une déclaration de fonction standard, qui définit simplement la fonction mais ne l'invoque pas. Pour exécuter réellement la fonction, vous l'appelleriez comme ceci :

foo()
Copier après la connexion

Maintenant, introduisons le point d'exclamation :

!function foo() {}();
Copier après la connexion

Cet ajout apparemment inoffensif change la donne. Le point d'exclamation transforme la déclaration de fonction en une expression, qui peut désormais être immédiatement invoquée en ajoutant des parenthèses. La priorité des parenthèses est supérieure à celle du point d'exclamation, donc le code s'exécute comme :

(function foo() {})()
Copier après la connexion

Cela accomplit essentiellement la même tâche que l'invocation explicite dans l'exemple précédent. Cependant, il offre un avantage subtil : il économise un octet par expression de fonction.

De plus, le point d'exclamation sert également à un autre objectif. Cela force l'expression à renvoyer une valeur booléenne basée sur la valeur de retour de la fonction. Cependant, dans le cas d'expressions de fonction immédiatement invoquées (IIFE), la valeur de retour est généralement indéfinie, ce qui rend le résultat de l'expression true. Cette valeur booléenne n'est généralement pas utilisée, mais elle constitue néanmoins un curieux effet secondaire de la présence du point d'exclamation.

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