关于JS的问题

前段时间面试时遇到了这样一个问题:

 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,这让我很不解,求好心人解释一下其中的原理。


炎炎设计
浏览 498回答 1
1回答

慕运维8079593

首先最后答案应该是10;原因:1.变量重复声明会被忽略,但赋值不会,所以每次循环你的num开始都是12.i<10,i最后拿到的是9,1+9=10
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript