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

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

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;其实只要知道子函数能调用父函数内的变量即可,老爸的东西给儿子用不是很正常吗,毕竟儿子都是自己的。

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值