Maison > Article > interface Web > Questions d'entretien courantes sur JavaScript
À propos du problème de portée JS, c'est une question d'entretien que les intervieweurs adorent poser lors des entretiens. Parfois, c'est vraiment frustrant. L'article suivant partage principalement avec vous sur javascript<.>Quelques questions d'entretien courantes sur la portée, les amis dans le besoin peuvent s'y référer. Jetons un coup d'œil ci-dessous.
Cet article partage principalement avec vous le contenu pertinent sur les questions d'entretien de portée JavaScript, et le partage pour votre référence et votre étude. Jetons un coup d'œil ensemble.Articles connexes recommandés : La collection la plus complète de questions d'entretien js en 2020 (dernière)
1. Portée :
Avant de comprendre la portée, vous devez d'abord comprendre quelques concepts de base :variable et fonction a son champ d'action. Elle ne peut pas être utilisée au-delà de son champ d'action.
2. Variables globales, variables locales :
1. 🎜> (1) Variables déclarées dans la portée globale, telles que
(Remarque : si a=2 dans une fonction environnement, également variables globales) var a=1;
2. Variables locales : a=2;
Les variables écrites dans les fonctions sont appelées variables locales.
(1) Sécurité du programme.
(2) Libération de mémoire.
Le processus de recherche d'une quantité. Vérifiez d'abord s'il existe une déclaration ou une fonction dans votre environnement local. S'il y en a, vérifiez si la déclaration a une affectation ou le contenu de la fonction. Sinon, recherchez un niveau.
4. Séquence de pré-analyse :Chaque programme doit faire le travail. Le programme commence par pré-analyser la grammaire et si. il y a des signes de ponctuation. S'il y a une erreur, analysez si la mémoire peut être hébergée, analysez les variables... jusqu'à ce que l'analyse soit correcte, commencez à suivre la séquence normale du processus. Imaginez simplement, s'il n'y a pas de séquence de pré-analyse et que la séquence de processus est suivie directement, le programme peut s'exécuter jusqu'à la dernière fonction, trouver une erreur de syntaxe , puis commencer à signaler les erreurs. être!
1. Les blocs 3f1c4e4b6b16bbbd69b2ee476dc4f83a référencés dans le fichier sont analysés en séquence et connectés de haut en bas.
2. Var à l'intérieur de chaque bloc de script (remarque : analyse uniquement
, sans analyser la valeur, comme
analyse var a au début de l'environnement, et Les valeurs suivantes ne sont pas analysées, seulement lorsque le programme est exécuté sur la ligne
3. Analysez chaque environnement tour à tour, en analysant var a=2;
, var a=2
jusqu'au début de l'environnement.
var
5. Scénarios de candidature (quelques questions d'entretien courantes liées à la portée) : function
var a="aa"; function test(){ alert(a);//undefined,函数执行后,在函数环境内,var a会预解析,当弹出a时,首先先找本层环境内有无声明,发现有。但是代码没有执行到赋值,所以结果是undefined。 var a="bb";//var a会预解析在函数开头,执行到这行才进行赋值 alert(a);//“bb” } test(); alert(a);//"aa" 找全局环境下的声明,找到了var a="aa"6. Résumé :
var a="aa"; function test(){ alert(a);//“aa”,函数执行后,在函数环境内,没有找到本层环境关于a的声明,所以开始向上一层环境查找。 a="bb";//执行到这行开始改变全局a的量 } test(); alert(a);//"bb" 全局环境的a在函数执行时已经被改变
function test(){ b();//函数b会被预解析,因此可以调用,执行了输出1; var a=1; function b(){ console.log(1); console.log(a);//undefined var a=2; } } test();
Pour déterminer la portée d'une variable, la clé est de déterminer l'ordre de pré-analyse, et puis faites un jugement Il existe des routines pour la portée de la portée : vérifiez d'abord s'il y a une déclaration dans l'environnement actuel, et si c'est le cas, vérifiez si l'affectation a été effectuée s'il n'y a qu'une déclaration mais pas d'affectation, elle n'est pas définie ; S'il n'y a pas de déclaration ou d'affectation, recherchez un niveau plus haut jusqu'à ce qu'elle soit trouvée. Si tous les environnements d'exécution ne sont pas trouvés, la console signalera une erreur indiquant que la variable est introuvable.
Recommandations d'apprentissage associées :
Tutoriel vidéo javascriptCe 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!