Maison > interface Web > js tutoriel > Introduction au levage de déclarations en JavaScript (exemple de code)

Introduction au levage de déclarations en JavaScript (exemple de code)

不言
Libérer: 2019-03-05 14:41:06
avant
2678 Les gens l'ont consulté

Le contenu de cet article est une introduction à la promotion des déclarations en JavaScript (exemples de code). J'espère que cela vous aidera. aidé.

1. Présentation

En JS, nous tenons pour acquis que le code est exécuté phrase par phrase, mais ce n'est pas tout à fait correct.

singer = "周杰伦";
var singer; 
console.log(singer); // 周杰伦

sing();  // 故事的小黄花
function sing() {
   console.log("故事的小黄花");
}
Copier après la connexion

Si le premier morceau de code ci-dessus suit le processus normal, le var singer suivant redéfinira la valeur par défaut sur undefined, mais le résultat est 'Jay Chou'

Le deuxième morceau de code ci-dessus sera compris comme signifiant que s'il est d'abord exécuté puis déclaré, une erreur sera signalée, mais le résultat ne le sera pas.

Le bloc de code ci-dessus peut en fait être réécrit comme ceci :

var singer = undefined;
singer = "周杰伦";
console.log(singer); // 周杰伦
function sing() {
   console.log("故事的小黄花");
}
sing();  // 故事的小黄花
Copier après la connexion

C'est parce que :

La déclaration de définition JS sera faite pendant la phase de compilation, l'affectation et d'autres opérations sont effectuées pendant la phase d'exécution.

Donc, vient d'abord avec la déclaration, puis l'affectation et l'exécution Il s'agit de la promotion de la déclaration des variables et des fonctions.

2. La déclaration de fonction a priorité sur la déclaration de variable

var foo = "bar";
function foo() {
   
}
typeOf(foo);  // string

var foo = "bar";
function foo() {
   
}
typeOf(foo);  // string
Copier après la connexion

Que la déclaration de fonction soit placée avant ou après la déclaration de variable, la déclaration de variable remplace la fonction ; déclaration.

3. Chaque domaine sera déclaré promu

Le code suivant en affichera 10, pourquoi ?

var foo = 1;
function bar() {
   if (!foo) {
       var foo = 10;
   }
   alert(foo);
}
bar();
Copier après la connexion

Parce que :

Chaque domaine sera revendiqué.

Le code ci-dessus est équivalent à :

var foo = 1;
function bar() {
   var foo = undefined;
   if (!foo) { // !foo === true
       var foo = 10;
   }
   alert(foo);
}
bar();
Copier après la connexion

4. Les expressions de fonction ne déclareront pas de promotion

Tout d'abord, qu'est-ce qu'une expression de fonction ?

// 函数声明
function foo() {
   console.log("函数声明");
}

// 函数表达式
var foo = function() {
   console.log("函数表达式");
}
Copier après la connexion

Les expressions de fonction ne déclareront pas de promotion, donc :

foo();  // Uncaught TypeError: foo is not a function

// 函数表达式
var foo = function() {
   console.log("函数表达式");
}
Copier après la connexion

Résumé

Il existe un mécanisme pour déclarer une promotion en JavaScript, avec déclaration de variable et déclaration de fonction . Le moteur JS recherche les déclarations pour chaque portée au moment de la compilation, tandis que les affectations et les opérations se produisent au moment de l'exécution.

Les définitions de fonctions sont divisées en déclarations de fonction et expressions de fonction. Les déclarations de fonction ont une promotion de déclaration, mais pas les expressions de fonction.

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:csdn.net
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
Derniers numéros
c++ appelle javascript
Depuis 1970-01-01 08:00:00
0
0
0
Qu’est-ce que le garbage collection JavaScript ?
Depuis 1970-01-01 08:00:00
0
0
0
Que sont les fonctions de hook JavaScript ?
Depuis 1970-01-01 08:00:00
0
0
0
Comment obtenir la date actuelle en JavaScript ?
Depuis 1970-01-01 08:00:00
0
0
0
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal