Maison >interface Web >js tutoriel >Questions d'entretien courantes sur JavaScript

Questions d'entretien courantes sur JavaScript

微波
微波original
2017-06-28 13:26:243578parcourir

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.

Articles connexes recommandés : La collection la plus complète de questions d'entretien js en 2020 (dernière)

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.

1. Portée :

Avant de comprendre la portée, vous devez d'abord comprendre quelques concepts de base :


Chaque

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

(2) Uniquement les affectations sans valeurs déclarées, 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.

3. Fonction :


(1) Sécurité du programme.
(2) Libération de mémoire.


3. Chaîne de portée :

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!

Contenu séquentiel :

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

nom de la variable

, 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

, la variable se verra attribuer une valeur), et la fonction est analysée jusqu'au début de ce bloc.

3. Analysez chaque environnement tour à tour, en analysant var a=2;, var a=2 jusqu'au début de l'environnement.

var5. 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.

Les fonctions sont encore plus simples : découvrez s'il existe une fonction pré-analysée dans cet environnement, et si oui, exécutez-la. Sinon, continuez à chercher.

Recommandations d'apprentissage associées :

Tutoriel vidéo javascript

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!

Déclaration:
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