Maison >interface Web >js tutoriel >'Phase de précompilation' et 'phase d'exécution' pendant l'exécution de JavaScript compétences process_javascript
Comparé à d'autres langages, javascript est un langage faiblement typé. Dans d'autres langages comme java, l'exécution du programme nécessite une étape de compilation, et il existe une « étape de pré-compilation » similaire en javascript (le pré-compilation de javascript -étape de compilation). La compilation est basée sur des blocs de code3f1c4e4b6b16bbbd69b2ee476dc4f83a2cacc6d41bbb37262a98f745aa00fbf0, c'est-à-dire que chaque fois qu'un bloc de code est rencontré, il sera précompilé>exécuté). être utile dans le processus d'écriture du code js. Résumé des idées
Tout d'abord, découvrons les deux méthodes de déclaration en JavaScript, var et function. La première déclare des variables et la seconde déclare des méthodes
.
En pré-compilation, javascript fait deux solutions de traitement pour ces deux déclarations
<script> var a = "1"; //声明变量a function b(){ //声明方法b alert(); } var c = function(){ //声明变量c alert(); } </script>
Dans le bloc de code ci-dessus, a et c sont des affectations de variables et b est une déclaration de fonction. Lorsque le code ci-dessus est exécuté, il entrera d'abord dans l'étape de pré-compilation. L'attribution de a et c à des variables ouvrira un. espace mémoire dans la mémoire et pointe vers le nom de la variable, et la valeur attribuée n'est pas définie
Pour la déclaration de fonction, l'espace mémoire sera également alloué, mais l'objet attribué attribuera la fonction déclarée au nom de la fonction
Phase de pré-compilation : (PS : quel que soit l'ordre dans lequel les variables et fonctions sont déclarées dans le code, les variables seront déclarées en premier puis les fonctions dans la phase de pré-compilation)
<script> var a = undefined; var c = undefined; var b = function(){ alert(); } </script>
Phase d'exécution :
<script> a = "1"; c = function(){ alert(); } </script>
Étapes globales d'exécution :
<script> var a = undefined; var c = undefined; var b = function(){ alert(); } a = "1"; c = function(){ alert(); } </script>
Titre :
<script> var a = "1"; function b(){ alert(a); var a = "2"; } b(); </script>
ps : pré-compilation de javascript
1. prédéfinissez d'abord les variables, puis prédéfinissez les fonctions
2. La pré-compilation des variables ne fait que les déclarer, ne les initialise pas, et les initialise lors de l'exécution
3. La fonction définie par l'instruction de fonction déclare non seulement le nom de la fonction, mais traite également le corps de la fonction
4. Les fonctions anonymes ne seront pas précompilées
function f(){ // 声明函数f return 1; } alert(f()); // 返回1 var f = function(){ // 定义匿名函数f return 2; } alert(f()); // 返回2
La variable f est prédéfinie en premier, puis la fonction f() du même nom écrase la variable f, donc 1 est sorti pour la première fois ;
var f = function(){ // 定义匿名函数f return 1; } alert(f()); // 返回1 function f(){ // 声明函数f return 2; } alert(f()); // 返回1