Maison >interface Web >js tutoriel >Compréhension approfondie des requêtes gauche et droite en javascript
Cet article présente principalement la compréhension approfondie de la requête gauche et de la requête droite en JavaScript. L'éditeur pense que c'est assez bon. Maintenant, je vais le partager avec vous et le donner comme référence. Suivons l'éditeur pour y jeter un œil
Valeurs et références
Portée
Au sens étroit, la portée est un objet (plus précisément, elle devrait être une collection
Au sens large) ; sens, la portée est un ensemble de règles pour stocker les variables et faciliter la recherche de ces variables plus tard
La portée est responsable de la collecte et de la maintenance de la portée ; composé de tous les identifiants déclarés. Une série de requêtes et applique un ensemble de règles très strictes qui déterminent les droits d'accès du code en cours d'exécution à ces identifiants.
Préparation avant exécution du code (code global, corps de fonction, code d'évaluation) :
1. Promotion (expression de fonction variable)
2. Déterminez le point de ceci ; >
3. Associé à la portée correspondante ;La relation entre scope et contexte d'exécution :
Un scope peut contenir plusieurs contextes. Il est possible qu'il n'y ait jamais eu de contexte (la fonction n'a jamais été appelée) ; il est possible qu'il y en ait eu, et maintenant après l'appel de la fonction, le contexte est détruit
(function(){ function test(a){ b=a; console.log(b);//2 } test(2); })(); console.log(b);//2
Mode strict et mode non strict
console.log(a);//ReferenceError: a is not defined
RHS et LHS lanceront une exception ReferenceError
//a并未定义赋值 console.log(typeof a);//undefined
Mécanisme de prévention de sécurité de typeof
1 Utilisez la variable globale DEBUG dans le programme comme commutateur "Mode de débogage", nous déclarons var DEBUG =true dans le fichier DEBUG.js ; ce fichier n'est chargé dans le navigateur que lors du développement et des tests, et ne sera pas chargé dans l'environnement de production
Recommandations associées :
if(DEBUG){ //在生产环境中会报错 console.log("开始调试"); } if(typeof DEBUG !== "undefined"){ console.log("开始调试"); }
Requête gauche et requête interne
if(typeof polyfill_a === "undefined"){ //注意这一块不需要var,跟变量的提升有关 //这一块需要使用函数表达式而不是函数声明 polyfill_a = function(){ //功能代码 } }
La différence entre requête gauche et requête droite
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!