首页 > 编程语言 > 详细

JavaScript-作用域

时间:2020-04-11 00:04:01      阅读:75      评论:0      收藏:0      [点我收藏+]

作用域是可访问变量的集合。

 1  function abc(){
 2             // 当在函数中定义变量时,这个变量的作用范围仅在函数中
 3             var a=1;
 4             a++;
 5             console.log(a);
 6         }
 7         abc();
 8         abc(); */
 9         // 执行2遍以后,a的结果仍然是2
10         // 每次执行函数abc,都会重新将a定义为1
11         // 函数执行完成,定义在函数中变量a去哪里了?外面为什么调用不到
12         // 外面调用不到的主要原因是因为a的作用范围仅在函数中,当函数执行完成后a就会自动被销毁
定义在函数外面的变量,叫做全局变量。
定义在函数里面的变量,叫做局部变量。
那么局部变量都有哪些?
在函数中使用var定义的变量一定是局部变量,参数也是局部变量。
 1 function abc(){
 2             var a=1;//a是局部变量
 3         }
 4 abc();
 5 console.log(a); 
 6 
 7 
 8 
 9         var a=3;
10         function abc(){
11             console.log(a);//undefined
12             // 在当前函数中使用var定义了局部变量,那么在当前函数中任何位置调用的都是
13             // 局部变量
14             // 全局变量是无法获取的
15             var a=5;
16             console.log(a,"_________");
17             // 局部变量不会覆盖全局变量
18             // window.a就是全局变量a,后面的a是局部变量a
19             // 在ES6中window.a也不允许使用了
20             //console.log(window.a+a);
21         }
22 
23         abc(); 
24         // console.log(a);//当在函数外打印变量,这个变量肯定就是全局变量
25         // 定义的局部变量不会改变全局变量
26         // 我们认为一旦在函数中定义了局部变量,那么这个局部变量名字如果和全局变量名相同
27         // 全局变量将无法直接在函数中使用了,局部变量的优先级高    
全局变量可以用来存储数据,局部变量一般都是临时使用,执行完成后会被销毁.
 1 var a=3;
 2 function abc(a){
 3 // a是一个参数,参数也是局部变量
 4 console.log(a);//(1) 7  打印局部变量参数
 5 var a=10;//重新定义局部变量,参数被覆盖
 6 console.log(a);//(2) 10 打印重新定义的局部变量a
 7 }
 8 abc(7);
 9 console.log("a");//(3) "a" 这里的a是双引号引起了,所以这是字符a
10 console.log(a);//(4) 3  这里的a是变量,因为在函数外打印的变量都是全局变量
11 // 一旦函数中的局部变量名和全局变量名相同,在函数中使用的变量都是局部变量
 1 var a=1;
 2 // 命名函数在代码中定义以后,script被执行时,会自动将函数放在堆中
 3 // 并且将函数存储在栈中的全局变量,定义函数全局是最为优先,最早的
 4 // 当代码执行到  var a=1时,才开始重新定义变量a,而这个变量a
 5 // 与栈中的全局函数a重名,因此变量a就会覆盖全局函数a
 6 function a(a){
 7    console.log(a);//(2)
 8    var a=3;
 9    console.log(a);//(3)
10 }
11 console.log(a);//(1)  1
12 a(10);  //1    不是一个函数所有报错
13 console.log(a);//(4) 

 

 
 
 
 
 

JavaScript-作用域

原文:https://www.cnblogs.com/wyp-King/p/12676711.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!