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

关于JS的问题

关于JS的问题

炎炎设计 2018-12-19 15:18:18
前段时间面试时遇到了这样一个问题:  var num=0; for(var i=0;i<10;i++)     {        var num=1;        num+=i;     }  console.log(num);我的理解是开始声明了一个全局变量num,然后又在函数内部声明了一个局部变量num,并对之进行操作,最后的console.log输出的应该是全局变量num,所以结果应该是0,但是正确答案是9,这让我很不解,求好心人解释一下其中的原理。
查看完整描述

1 回答

?
慕运维8079593

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

首先最后答案应该是10;
原因:
1.变量重复声明会被忽略,但赋值不会,所以每次循环你的num开始都是1
2.i<10,i最后拿到的是9,1+9=10

查看完整回答
反对 回复 2018-12-19
  • 1 回答
  • 0 关注
  • 497 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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