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

JavaScript for循环输出问题

JavaScript for循环输出问题

咩咩咩3124927 2016-09-28 20:00:52
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

查看完整回答
2 反对 回复 2016-09-28
  • 咩咩咩3124927
    咩咩咩3124927
    谢谢,我明白了!好人一生平安!
  • fantacy吴贝
    fantacy吴贝
    这样确实console.log(),可以向控制台输出0到5,for循环会从开始跑到结束这点你也明白了,当你学到setInterval()和setTimeout,要用它们来控制循环的时候,比如1s循环进行一次,那时又会有新问题,要想深一点,控制循环的语句return continue break这些也可以实现,那些要放在循环体中应该想清楚
?
杜发明

TA贡献202条经验 获得超301个赞

循环体不能写方法体外部,这么给你说吧,一切的逻辑方法操作都先有的方法再有实体。

查看完整回答
反对 回复 2016-09-29
?
咕咕问

TA贡献78条经验 获得超12个赞

(function(d){console.log(d);})("ccc")

查看完整回答
反对 回复 2016-09-29
?
咕咕问

TA贡献78条经验 获得超12个赞

闭包    外部通过函数内部的方法调用函数中的成员变量,这个成员变量一直存在,直到方法结束。

查看完整回答
反对 回复 2016-09-29
?
Mr_SL

TA贡献1条经验 获得超0个赞

循环了5次但是没有调用f(),f()里的console.log(i),只有i变化了,但是f()没有输出。

查看完整回答
反对 回复 2016-09-28
?
我是大牛你信么

TA贡献9条经验 获得超2个赞

你的写法是将f函数定义了五次
查看完整回答
反对 回复 2016-09-28
?
摩诃迦叶

TA贡献146条经验 获得超54个赞

写反了。 

  function f(){

for(var i=0;i<5;i++){

      console.log(i);

   }

}


查看完整回答
反对 回复 2016-09-28
  • 7 回答
  • 3 关注
  • 2009 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信