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

这个运行的结果是什么,为什么?

这个运行的结果是什么,为什么?

开普勒 2016-02-28 15:49:45
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8" /> <script> function outerFun() { var a =0; alert(a); } var a=4; outerFun(); alert(a); </script> </head> </html>
查看完整描述

3 回答

?
beiciye

TA贡献4条经验 获得超5个赞

0;4这段代码定义了一个outerFun函数;这个函数内部声明a=0;调用时alert得到0

调用了一次outerFun函数,第一次alert结果为0; 后面又声明a=4;alert出来的结果4

查看完整回答
5 反对 回复 2016-02-28
?
陌熙

TA贡献18条经验 获得超24个赞

先alert出0,后alert出4;

原因:首先调用outerFun函数,在函数中,定义了局部变量a=0;所以alert出4

          局部变量顾名思义是在某个局部有效,这里是在outerFun函数里面有效,所以调用outerFun时,alert出的a的值就是

          outerFun内部定义的a的值,即0

          都说了局部变量是在局部有效,所以,当alert(a)时,outerFun里面定义的a就是无效的。如果之后没有定义a的值

        ,而alert出a的话,a就没有值了,你这里重新定义了之后,就会alert出a的值是4.

查看完整回答
反对 回复 2016-02-29
?
狂飙的蜗牛_1

TA贡献96条经验 获得超43个赞

作用域问题;

a=0是在函数内部定义的,所以是局部变量;

第二个a为全局变量;

查看完整回答
反对 回复 2016-02-28
  • 3 回答
  • 0 关注
  • 1603 浏览
慕课专栏
更多

添加回答

举报

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