Maison >interface Web >js tutoriel >La différence entre les deux formes de déclaration de fonction
Nous savons que le mot-clé function est utilisé pour définir des fonctions ; les définitions de fonctions peuvent être écrites sous forme d'expressions de définition de fonction ou sous forme d'instructions. Par exemple, les deux méthodes d'écriture suivantes
var f = function(x){return x+1;} //将表达式赋值给一个变量 函数表达式 function f(x){return x+1;} //含有变量的语句 函数声明
Bien que les instructions de déclaration de fonction et les expressions de définition de fonction contiennent le même nom de fonction, il existe toujours des différences entre elles ;
Idem : les deux méthodes créent de nouveaux objets fonction ; les deux seront "avancées" (les fonctions définies dans les instructions de fonction sont explicitement avancées en haut du script ou de la fonction, elles sont donc visibles dans l'ensemble du script ); : Le nom de la fonction dans l'instruction de déclaration de fonction est un nom de variable et la variable pointe vers l'objet fonction. Tout comme la déclaration de variables via var, les fonctions définies dans les instructions de fonction sont affichées à l'avance en haut du script ou de la fonction, elles sont donc visibles dans l'intégralité du script
1. En utilisant var, seules les variables sont déclarées à l'avance - l'initialisation ; des variables est Cependant, dans la position d'origine, lors de l'utilisation de l'instruction de déclaration de fonction, le nom de la fonction et le corps de la fonction sont tous deux à l'avance
Résumé : Pour parler simplement, la méthode d'expression de fonction (c'est-à-dire la méthode de déclaration var) ne peut que être appelé après la déclaration de l'instruction var;Et la fonction de déclaration de fonction (c'est-à-dire la méthode de déclaration de fonction) peut être appelée avant la déclaration de fonction.
Ces situations sont dues au fait que l'expression de fonction est affectée à la variable f pendant la phase d'exécution de la fonction ; alors que la déclaration de fonction a été affectée à la variable f avant l'exécution du code, c'est-à-dire pendant la phase d'analyse du code
On peut regarder le code suivant :
console.log(f,"函数前") var f = function (x) { return x + 1;//函数表达式 } console.log(f,"函数后")Et le résultat de l'exécution de ce code :
console.log(f,"函数前") function f(x) { return x + 1;//函数声明 } console.log(f,"函数后")Le résultat :
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!