JavaScript est un langage de script descriptif qui est analysé et exécuté dynamiquement par le navigateur. Il existe généralement deux manières de définir des fonctions. Les navigateurs ont des ordres d'analyse différents pour différentes manières. Cet article partage principalement avec vous l'analyse de la séquence d'exécution js, dans l'espoir d'aider tout le monde.
Le code est le suivant :
//“定义式”函数定义 function Fn1(){ alert("Hello World!"); } //“赋值式”函数定义 var Fn2 = function(){ alert("Hello wild!"); }
Pendant le processus de chargement de la page, le navigateur analysera chaque bloc de code js (ou fichier) sur la page ou s'il est chargé. rencontres Lorsqu'une fonction de définition est atteinte, un prétraitement est effectué (similaire à la compilation de C, etc.). Une fois le traitement terminé, l'exécution commence de haut en bas lorsqu'elle rencontre une fonction d'affectation, la fonction est simplement affectée à une variable sans prétraitement ; (similaire au (principe 1 selon lequel les variables doivent d'abord être définies puis référencées), elles ne seront pas traitées tant qu'elles ne seront pas appelées. Voici un exemple simple :
Le code est le suivant :
//“定义式”函数定义 Fn1(); function Fn1(){ alert("Hello World!"); }
Exécutez normalement, affichez "Hello World!", le navigateur prétraite Fn1, puis démarre à partir de Fn1() ; Démarrer l'exécution.
Le code est le suivant :
//“赋值式”函数定义 Fn2(); var Fn2 = function(){ alert("Hello wild!"); }
Firebug signale une erreur : Fn2 n'est pas une fonction. Le navigateur ne prétraite pas Fn2 et l'exécute séquentiellement, donc l'erreur Fn2 n'est pas définie. .
3. Traitement des blocs de code et des fichiers js
« Bloc de code » fait référence à une paire de