作用域
Posted 走在程序的路上
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了作用域相关的知识,希望对你有一定的参考价值。
JS的全局作用域和局部作用域
作用域:变量或者函数可访问的一个范围,以函数划分,一个函数块就是一个作用域
1) 全局作用域,整个文档中都可以使用(变量或者函数在函数外面声明)
声明方法:1 在函数外声明
2 变量不用var 声明,直接给变量赋值(不推荐使用)
不管在函数内还是函数外声明都是全局变量
全局变量在任何地方都可以访问的到原因:全局变量是window下的属性,window是一个全局对象,在任何地方都可以使用
注意:尽量避免使用全局变量,声明的时候一定要加var
1 var a=12;//没在函数内声明,是全局变量 2 3 console.log(a);//12 4 5 function fn(){ //没在函数外声明,全局作用域 6 7 var b=20;//局部作用域,函数块外访问不到 8 9 c=30; //没带var 是一个全局变量 10 11 } 12 13 fn(); 14 15 console.log(c); //30 全局变量,不建议使用 16 17 b=1000; 18 19 </script> 20 21 <script type="text/javascript"> 22 23 console.log(a); //12 全局变量 24 25 console.log(b); //1000 26 27 fn(); //12 全局函数 28 29
2) 局部作用域,函数范围内声明
变量或者函数在函数内部,作用域仅在声明的这个函数内,在函数外无法访问
注意:1 作用域的查找是函数声明而非调用
2 函数可以嵌套
3嵌套的函数(局部函数)可以访问父函数的内容
1 function fn(){ 2 var a=10; //函数内声明 局部变量 3 var b=20; 4 // 局部函数 5 function fn1(){ 6 console.log(a+b); //30 局部函数可以访问父作用域内的内容 7 } 8 fn1(); 9 } 10 11 fn(); // 30 12 console.log(a); //报错 局部变量 外面访问不
以上是关于作用域的主要内容,如果未能解决你的问题,请参考以下文章