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

js作用域问题求解答???

js作用域问题求解答???

慕容708150 2018-07-15 14:27:14
    var a= 1;    function fn1(){         alert(a);         a = 2;     }     fn1();     alert(a);结果 先输出1,之后输出2想请问一下浏览器执行这个的过程,求懂得人指教
查看完整描述

3 回答

?
炎炎设计

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

执行fn1()内部的alert(a)时,fn1内部没有变量a,就会去全局作用域中寻找,此时a为1;然后a被赋值为2,所以后面的alert(a)为2

查看完整回答
反对 回复 2018-07-18
?
跃然一笑

TA贡献1826条经验 获得超6个赞

var a = 1就是讲a定义为全局变量,你fn1()执行的时候,fn1函数内部,alert(a)前面并没有定义a,就会在全局作用域中寻找a,所以第一次是alert(1),然后你的a被改为2(第二次的a也是全局的),最下面的那个alert(a)中的a就为2

查看完整回答
反对 回复 2018-07-18
?
潇潇雨雨

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

执行顺序已经有人回答了,所以不再重复了。

其实你想了解执行顺序,可以打断点看下,更加方便和清楚。


查看完整回答
反对 回复 2018-07-18
  • 3 回答
  • 0 关注
  • 356 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号