La portée et la chaîne de portée de JavaScript sont la partie la plus douloureuse de mon apprentissage, car j'ai passé beaucoup de temps à lire de nombreux documents techniques mais je ne pouvais pas le comprendre. Je savais à peu près ce que cela signifiait, mais je ne pouvais toujours pas dire pourquoi.
Grâce à mes tests et à la lecture de documents techniques, j'ai résumé la compréhension suivante. Bien que ce ne soit pas très technique, je peux vraiment le comprendre.
1. JavaScript n'est divisé qu'en mondial et local, et il n'y a pas divers modificateurs pour ces langages d'arrière-plan. Si vous n'utilisez pas VAR dans une fonction, il est global. comme suit:
<script type = "text / javascript"> varname = "c #"; // global window.name = "java"; // global varLanguage = function () {alert (name); name = "javascript"; // var name name = "js"; // alerte locale (name); } () alert (nom); </cript>Le code ci-dessus représente globalement tous les points vers la même variable, et la définition suivante remplacera ce qui précède. En ce qui concerne les trois alertes, à savoir Underfind, JS et JavaScript. C'est la portée qui joue un rôle.
2. La chaîne de portée commence à partir du niveau 0 et est disposée vers le bas en séquence. Les soi-disant baisses en séquence se réfèrent à la disposition des enfants. Lorsque vous recherchez des variables, recherchez-les d'abord du même niveau, puis recherchez le niveau parent.
Dans l'exemple ci-dessus,
La première chose qui apparaît est la première alerte de la méthode de la langue. Si la fenêtre globale est 0, alors dans l'exemple var name = "js" est 1. La première alerte se trouve dans 1. S'il ne peut être trouvé, recherchez-le dans 0. Ceci a constaté qu'il y a un var name = "js" au même niveau, mais il n'a pas encore attribué de valeur, donc le sous-fin
Le deuxième pop-up est la deuxième alerte de la méthode de la langue, et il le cherchera dans 1, c'est-à-dire l'intérieur de la méthode. Il a trouvé le nom et a attribué JS, donc le pop-up est JS
Le troisième pop-up est l'alerte en bas. Étant donné que le nom global a été réaffecté à l'intérieur de la méthode, JavaScript apparaît.
Ensuite, ajoutez le lien suivant, nous sommes en tête d'une méthode dans la langue, comme suit:
<ScriptType = "Text / JavaScript"> varname = "JavaScript"; // Window Global.Name = "JavaScript"; // Global VarLanguage = function () {alert (name); name = "javascript"; // global varname = "js"; // alert local (name); var loveanguage = function () {alert (name); } (); } () alert (nom); </cript>À l'heure actuelle, l'alerte de Lovelangue apparaît avec JS car elle trouvera le nom dans le niveau de langue, qui est le nom dans la langue. . .
Ce qui précède est tout le contenu de la portée et de la chaîne de portée JavaScript (incontournables pour les novices) qui vous sont apportés par l'éditeur. J'espère que tout le monde soutiendra davantage les pas.