为了账号安全,请及时绑定邮箱和手机立即绑定

关于函数作用域的

关于函数作用域的

一城烟水 2016-08-07 21:02:28
var a,b; (function(){     alert(a);     alert(b);     var a=b=3;     alert(a);    alert(b);} )();    alert(a);    alert(b);  输出结果是undefined,undefined,3,3,undefined,3,  不明白为什么最后两个值的结果是这样的
查看完整描述

4 回答

?
皓韵儿

TA贡献86条经验 获得超114个赞

你的赋值是在函数里的,只有调用到函数才能赋值。。。。

查看完整回答
反对 回复 2016-08-08
?
qyy2499760117_叶子

TA贡献188条经验 获得超91个赞

你的赋值是在函数里的,只有调用到函数才能赋值。

查看完整回答
反对 回复 2016-08-08
?
摩诃迦叶

TA贡献146条经验 获得超54个赞

function外的a,b是全局变量,没有赋值。 所以第一,二个alert,输出undefined。 然后你在function里又定义了两个变量a,b,注意,这里的a,b和全局变量a,b不是一个变量。 所以a=b=3,只是给局部变量赋值了,全局变量a,b还是没有值。 最后两个alert输出的是全局变量a,b的值,所以还是undefined。

查看完整回答
反对 回复 2016-08-08
  • 4 回答
  • 0 关注
  • 1590 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信