函数的作用域

五迷三道 提交于 2020-03-01 16:32:04

什么是作用域?:

     存储和访问变量,是任何一种编程语言最基本的功能之一,变量存在哪里?程序需要时如何找到它?这些问题需要一套良好的规则来规范,这套规则,就成为作用域。那又分为局部作用域全局作用域

 

 

 

函数的作用域:

JS划分作用域也是用{ }来划分的,但是js中有效的限定作用域只有函数的{ }。

有时候我们常常会遇到类似这样的引用错误,那么我们可以往两个方面去考虑:1、看是不是变量名称拼写错误了。

                                   2、如果变量每拼写错误,再看其作用域是否错域了。

为此我们来详述以下有关函数作用域的问题:

函数的变量论作用域来分的话,可以分为局部变量全局变量两种。

局部变量:见名如意,局部变量就是在函数内部声明的变量,作用域只是这个函数的部分。

  

<script>
     funcaiton fun(){
          var a=10; //a只可以在这个函数内部被调用     
}  
</script>

 

全局变量:没有被任何函数包裹,在任何地方都可以使用。

<script>
     var a = 10;
     funcation fun(){
         var b = a;//这里b为10;
}
</script>

 

伪全局变量:

function foo(){
          a = 10;//声明变量不使用var 
          console.log(a);
  }
 foo();
 console.log(a);//这样就不会报错了

 

 

局部变量和全局变量二者的区别:

1、生命周期:就是看其二者啥时候可以被访问。全局变量随着程序而存在,只要程序不结束,全局变量就一直存在,但是这样有一个缺点,如果变量多的话,会使程序更繁琐。而局部变量,只是伴随这函数而存在,函数执行结束了,局部变量也就消失了。

2、命名空间:全局的命名空间是唯一的

        如果全局变量起的是比较常见的名称,如果在后期对接代码时,可能会造成变量名称重复错误。

           有时候需要和其他项目对接时候,我们可以设置一个匿名函数来避免命名问题,例如

+funcation(){
    console.log("你好");
}();

这里是将匿名函数做了一次运算,函数经过运算变成了地址,然后被调用。

 

而且只要函数内部定义了一个变量,这个变量会被“提前声明”。

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!