微信扫一扫打赏支持

范仁义js课程---50、函数作用域

范仁义js课程---50、函数作用域

一、总结

一句话总结:

函数作用域指只能在函数里面发挥作用的变量,在函数外无法被访问到,可以在函数里面用var关键字声明一个函数变量

 

 

1、如何定义一个函数作用域的变量?

在函数里用var关键字声明一个变量,这个变量的作用域就是函数作用域,在函数中,使用var关键字声明的变量才是函数变量,没使用var关键字声明的变量是全局变量

 

 

2、函数变量的生命周期是怎样?

函数变量的生命周期是函数被使用的时候创建,使用完之后销毁,所以调用函数一次,函数变量就被创建一次,调用完之后就会被销毁

 

 

3、在函数里面访问变量的规则是怎样的?

函数在访问变量的时候是有 就近原则的,会优先在函数里面找,函数里面如果有的话,就使用,没有的话就会一层一层的往上找

 

 

4、如何在函数里面访问全局变量?

可以直接通过window对象的属性来在函数里面直接访问全局变量,比如window.c就是访问的全局的c这个变量

 

 

5、函数里面有 变量和函数的声明提前 么?

在函数中,变量和函数都是有声明提前的

 

 

 

二、局部作用域

博客对应课程的视频位置:50、函数作用域
https://www.fanrenyi.com/video/19/150

 

 

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>函数作用域</title>
 6 </head>
 7 <body>
 8 <!--
 9 1、
10 函数作用域:指只能在函数里面发挥作用的变量
11 
12 函数作用域的变量,在函数外是无法被访问到的
13 
14 2、
15 如何定义一个函数作用域的变量
16 在函数里面用var关键字声明一个变量
17 
18 注意点:在函数中,使用var关键字声明的变量才是函数变量,
19 在函数中,没使用var关键字声明的变量是全局
20 
21 推荐:在函数里声明变量一般都使用var关键字
22 
23 3、
24 函数变量的生命周期
25 函数变量相当于是挂靠在函数上面的,
26 函数变量的生命周期是函数被使用的时候创建,使用完之后销毁
27 
28 注意点:
29 函数被声明的时候,函数中的变量是不会被创建出来的
30 
31 调用了这个函数几次,这个函数里面的函数变量就相当于被创建了几次,被销毁了几次
32 
33 
34 在函数里面可以访问全局的变量,但是在全局里面不能访问函数的变量
35 
36 4、
37 函数在访问变量的时候是有 就近原则的
38 函数里面再使用变量的时候,会优先在函数里面找,函数里面如果有的话,就使用,没有的话就会一层一层的往上找
39 
40 5、
41 如何在函数里面使用全局变量
42 可以直接通过window对象的属性来访问,比如window.c就是访问的全局的c这个变量
43 
44 6、
45 函数里面的变量和函数的声明提前
46 
47 
48 
49 -->
50 <script>
51     var c=20;
52     console.log('程序开始');
53     function fun1() {
54         console.log(a);
55         var a=14;
56         var c=22;
57         //b=15;
58         //console.log(a);
59         console.log(c);
60         fun2();
61         function fun2() {
62             var c=25;
63             console.log('fun2: '+c);
64             console.log('fun2 里面的全局的c: '+window.c);
65         }
66         //fun2();
67         //console.log("函数里:b="+b);
68     }
69     fun1();
70 
71     //fun1();
72     //console.log(a);
73     //console.log("函数外:b="+b);
74 </script>
75 </body>
76 </html>

 

 
posted @ 2020-03-06 22:47  范仁义  阅读(196)  评论(0编辑  收藏  举报