for(var i=0;i<5;i++){
function f(){
console.log(i);
}
}
f();这段代码最后输出的是5。但是我理解的是遍历数组之后输出的不应该是1,2,3,4吗?麻烦懂得同学帮忙详细解释下。多谢!
7 回答
已采纳
小白师兄
TA贡献55条经验 获得超37个赞
首先你要记住一个事情,函数是要经过调用才能执行的!在你的代码中,首先会执行for循环,在循环里面,虽然定义了f()函数,但是没有进行调用,所以,循环就从i=0,循环到i=5;但是没有办法执行f()函数,里面的console自然没运行,所以循环唯一的结果就是i从0走到了5然后循环结束;
然后执行f()函数,因为这里被调用了,会执行以此console,但是这个时候i已经是5了,所以只输出5;
你说的那个结果应该这样写:
function f(){ for(var i=0;i<5;i++){ console.log(i); } } f();
一上来就直接执行被调用的f(),在函数里面直接循环5次,结果就是0,1,2,3,4
添加回答
举报
0/150
提交
取消