Maison >interface Web >js tutoriel >Déclaration de fonction et expression de fonction en JavaScript
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; };
À 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