Maison > interface Web > js tutoriel > Explication détaillée de la compilation js et de l'ordre d'exécution

Explication détaillée de la compilation js et de l'ordre d'exécution

小云云
Libérer: 2018-02-24 14:27:01
original
1489 Les gens l'ont consulté

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多了一个声明的行为。
Copier après la connexion

Regardez l'exemple suivant :
1. >

alert(w);
alert('ok');
w = 2;
Copier après la connexion
Erreur : w n'est pas défini

2.

alert(w);
alert('ok');var w = 2;
Copier après la connexion
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');
Copier après la connexion
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');
Copier après la connexion
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(&#39;first&#39;);</script><script type="text/javascript">
    alert(&#39;second&#39;);</script>
Copier après la connexion
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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal