js基础:局部变量、全局标量、闭包

来源:互联网 发布:淘宝购物的流程 编辑:程序博客网 时间:2024/06/04 18:57

           局部变量:指的是函数体内的变量,函数体外部无法调用。

function a(){var b=1;}a();alert(b);     
         上段函数中,即使已经运行了函数,但因为b是函数内的变量(即局部变量),其他地方无法调用,所以弹出的是undefined


            全局变量:指的是在整个javascript文件内都能调用的变量,当然,因为javascript是从上至下执行的,所以需要声明变量后才能调用。

         

var b=1;function  a(){       alert(b);}
          上段函数中,因为b是在函数外部声明的,且没有被函数包裹,为全局变量,所以下面任意函数都能调用。弹出的是数字1。


           闭包:指的是可以调用局部变量的函数。常见的闭包就是在函数体内创建子函数,由子函数调用父函数中的局部变量。例:

function test(){      var x=10;      return function a(){             return x;      } }alert(test()());

           上段函数中的function a()就是闭包,调用了父函数的局部变量x的值,至于为什么test函数要执行两次才能弹出x值,是因为第一次执行只是返回了a的函数体,再次执行才能将顺利的return x;其实只要知道子函数能调用父函数内的变量即可,老爸的东西给儿子用不是很正常吗,毕竟儿子都是自己的。

      

0 0
原创粉丝点击