作用域及作用域链

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title></title>
 6     </head>
 7     <body>
 8         <script>
 9             var a=1;
10             function f1(){
11                 function f2(){
12                     function f3(){
13                         console.log(a)
14                     }
15                     f3();
16                 }
17                 f2();
18             }
19             f1();
20             
21             var a=3;
22             function f1(){
23                 var a=6;
24                 function f2(){
25                     var a=5;
26                     function f3(){
27                         var a=4;
28                         /*当函数中使用给某个变量时,优先在自己的作用域中查找
29                         如果找不到就会向上一层作用域查找
30                         如果找不到继续往上一层查找,直到全局作用域
31                         如果还找不到直接报错
32                         这就是→作用域链*/
33                         console.log(a)
34                     }
35                     f3();
36                 }
37                 f2();
38             }
39             f1();
40             
41             /*
42             只有函数可以制造作用域结构,那么只要是代码.就至少有一个作用域,凡是代码中有函数,那么这个函数就构成另一个作用域.如果函数中还有函数,
那么这个函数中就又可以诞生一个作用域.
43 将这样的所有的作用域列出来,可以有一个结构:函数内指向函数外的链式结构.就称作作用域链. 44 */ 45 </script> 46 </body> 47 </html>
posted @ 2022-09-04 18:28  鬼牛阿飞  阅读(20)  评论(0编辑  收藏  举报