Maison  >  Article  >  interface Web  >  Déclaration de fonction et expression de fonction en JavaScript

Déclaration de fonction et expression de fonction en JavaScript

PHPz
PHPzoriginal
2016-05-16 15:57:031368parcourir

Jusqu'à présent, nous n'avons pas fait de distinction entre les déclarations de fonction et les expressions de fonction. En fait, l'analyseur ne traite pas les déclarations de fonction et les expressions de fonction de la même manière lors du chargement des données dans l'environnement d'exécution. L'analyseur lira d'abord la déclaration de fonction et la rendra disponible (accessible) avant d'exécuter un code ; quant à l'expression de fonction, elle ne sera réellement interprétée et exécutée que lorsque l'analyseur aura atteint la ligne de code où elle se trouve. L'exemple suivant :

Le code est le suivant :

alert(sum(10,10));
function sum(num1,num2)
{
    return num1+num2;
}

Le code ci-dessus peut être exécuté correctement, car avant le démarrage du code En cours d'exécution, les déclarations de fonction de l'analyseur ont été lues et ajoutées à l'environnement d'exécution via un processus appelé levage de déclaration de fonction. Lors de l'évaluation du code, le moteur JavaScript déclare les fonctions dès le premier passage et les place en haut de l'arborescence source. Ainsi, même si le code qui déclare la fonction est derrière le code qui l'appelle, le moteur JavaScript peut hisser la déclaration de fonction au sommet. Si, comme le montre l'exemple suivant, la déclaration de fonction ci-dessus est remplacée par une expression de fonction équivalente, une erreur se produira lors de l'exécution.

Le code est le suivant :

alert(sum(10,10));
var sum=function(num1,num2)
{
    return num1+num2;
};

Le code ci-dessus provoquera une erreur lors de l'exécution car la fonction est localisée dans une instruction d'initialisation, plutôt que dans une déclaration de fonction. En d'autres termes, la somme variable ne contiendra pas de référence à la fonction jusqu'à l'instruction dans laquelle la fonction est exécutée. De plus, puisque la première ligne de code provoquera une erreur « identifiant inattendu », elle ne s'exécutera pas réellement ; la ligne suivante.

À l'exception du fait que la fonction est accessible via des variables lors de la déclaration, la syntaxe de la déclaration de fonction et de l'expression de fonction sont en fait équivalentes . de.

Remarque : Vous pouvez également appeler une déclaration de fonction et une expression de fonction en même temps, comme var sum=function sum(){}. Cependant, cette syntaxe entraînera des erreurs dans Safari.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à tous ceux qui apprennent le javascript.

Pour plus de didacticiels connexes, veuillez visiter le tutoriel javascript

Déclaration:
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