Maison > Article > interface Web > Explication détaillée de la compilation js et de l'ordre d'exécution
Javascript est exécuté section par section, séparés par des balises de script. Avant d'exécuter chaque section, il y a une "pré-compilation". La pré-compilation fait deux choses : 1. Déclarer toutes les variables var (initialement non définies), 2. . Analyser les instructions de fonction définitionnelles.
Il existe un classique sur la différence entre "a = 1 et var a = 1 dans la portée de la fenêtre" :
a = 1相当于window.a = 1,是动态地为window添加一个成员; var a = 1是在当前作用域(也就是window)下声明一个a,这个声明是在整个作用域内都有效的。 换句话说,其实区别就在于var a = 1比a = 1多了一个声明的行为。
Regardez l'exemple suivant :
1. >
alert(w); alert('ok'); w = 2;Erreur : w n'est pas défini
2.
alert(w); alert('ok');var w = 2;apparaît non défini et ok dans l'ordre. Lors de la précompilation, la variable w est déclarée ; lorsque la ligne de code alert(w) est exécutée, t n'a pas encore reçu de valeur, donc undefined apparaît.
3.
a();function a() {}alert('ok');OK apparaît. Pendant la précompilation, l'instruction de fonction de définition function a() {} est analysée et exécutée en douceur.
4.
b();var b = function() {}; alert('ok');b n'est pas une fonction et une erreur sera signalée lors de son exécution. Lors de la précompilation, la variable b = undéfini a été déclarée ; lorsque b() est exécuté, a est toujours égal à undéfini et n'est pas une fonction, donc une erreur sera signalée lors de l'exécution de b().
5.
<script type="text/javascript"> c(); alert('first');</script><script type="text/javascript"> alert('second');</script>Pop up en deuxième. Étant donné que JavaScript est exécuté section par section, une erreur est signalée lorsque la première section est exécutée dans c(), la première section entière ne sera pas exécutée à nouveau et la deuxième section sera exécutée normalement. Recommandations associées :
Analyse de la séquence d'exécution JavaScript
Une brève introduction à la séquence d'exécution JavaScript
Explication détaillée de la séquence de chargement et d'exécution de js en html
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!