Cet article vous propose un article sur la promotion de variables et la promotion de fonctions basées sur js (explication détaillée). L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur et jetons un œil. J'espère que cela pourra aider tout le monde.
1. Promotion des variables
Avant ES6, JavaScript n'avait pas de portée au niveau du bloc (une paire d'accolades {} est une portée au niveau du bloc), uniquement la portée globale et la portée de la fonction. Le levage de variable hisse une déclaration de variable au début de sa portée.
L'exemple du CV précédent est :
console.log(global); // undefined var global = 'global'; console.log(global); // global function fn () { console.log(a); // undefined var a = 'aaa'; console.log(a); // aaa } fn();
La raison pour laquelle le résultat d'impression ci-dessus est dû à la promotion variable de js, en fait , ce qui précède Le code est exécuté comme suit :
var global; // 变量提升,全局作用域范围内,此时只是声明,并没有赋值 console.log(global); // undefined global = 'global'; // 此时才赋值 console.log(global); // 打印出global function fn () { var a; // 变量提升,函数作用域范围内 console.log(a); a = 'aaa'; console.log(a); } fn();
2. Amélioration de la fonction
js Il existe deux manières de créer des fonctions dans : la déclaration de fonction et le littéral de fonction. Le levage de fonctions n'existe que pour les déclarations de fonctions ! Par exemple :
console.log(f1); // function f1() {} console.log(f2); // undefined function f1() {} var f2 = function() {}
La raison pour laquelle les résultats ci-dessus sont imprimés est que la fonction de promotion dans js entraîne l'exécution du code comme suit :
function f1() {} // 函数提升,整个代码块提升到文件的最开始<br>console.log(f1); console.log(f2); var f2 = function() {}
Conclusion : C'est en gros ça. Si vous voulez être compétent, vous pouvez faire plus d'exercices, testez :
console.log(f1()); console.log(f2); function f1() {console.log('aa')} var f2 = function() {}
(function() { console.log(a); a = 'aaa'; var a = 'bbb'; console.log(a); })();
Recommandations associées :
Explication détaillée de la promotion des variables javascript
Compréhension approfondie de la portée et du levage variable (levage) dans JS
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!