Si vous devez créer une fonction en JavaScript, il existe deux méthodes: déclaration fonctionnelle, expression de la fonction, chaque écriture est la suivante:
// Méthode 1: Déclaration fonctionnelle foo () {} // Méthode 2: Fonction Expression var foo = function () {};De plus, il existe une expression de fonction auto-exécutée, qui est principalement utilisée pour créer une nouvelle portée.
(function () {// var x = ...}) ();Cette expression de fonction auto-exécutée est classée comme la deuxième méthode des deux méthodes ci-dessus, qui peuvent également être considérées comme une expression fonctionnelle.
Les méthodes 1 et la méthode II ont créé une fonction et l'ont nommée FOO, mais il existe des différences entre les deux. Il existe un mécanisme qui existe dans l'interprète JavaScript qui est promu (histin), ce qui signifie que la déclaration d'une variable (fonction) sera promue au premier plan de la portée.
Par exemple, le segment de code suivant:
alert (foo); // fonction foo () {} alert (bar); // fonction bar_fn () {}Les résultats de sortie sont des fonctions foo () {}, undefined, fonctions foo () {}, et fonction bar_fn () {}.
On peut voir que l'instruction du FOO est écrite après alerte, et elle peut toujours être correctement appelée parce que l'interprète JavaScript le soulèvera à l'alerte avant, et la barre de fonction créée par l'expression de la fonction ne profite pas de ce traitement.
La barre est donc améliorée?
Par conséquent, l'ordre du code ci-dessus du moteur JavaScript peut être comme ceci:
Note:
À strictement parlant, si vous créez une fonction en JavaScript, il existe une autre méthode, appelée "Fonction Structure Method":
var foo = fonction ('alert ("hi!");'); Cette méthode utilise une chaîne comme paramètre pour former un corps de fonction. Cependant, dans cette méthode, l'efficacité d'exécution sera actualisée et il semble que les paramètres ne peuvent pas être passés, il est donc préférable d'utiliser moins.