前段时间面试时遇到了这样一个问题:
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
添加回答
举报
0/150
提交
取消