[问题] setTimeout的循环

楼主: yuoo1580 (da5f)   2018-04-09 19:06:12
不好意思打扰到大家
最近在学习js上遇到了问题
希望有版友能帮我解惑qq
这是codepen程式码
http://t.cn/RmIhfxK
我使用阵列进入循环跑判断
在使用setTimeout设定延迟
一开始我使用var
出现undefined 后来查资料去了解
因为使用var 循环会先跑完才去执行(我不确定我这样理解有没有误)
我找到2个解决方法
1个是使用closure
2是使用let
我使用let之后不会出现undefined了
但却没有延迟…会同时执行
想询问原因与解决方法
非常感谢大家的帮忙
作者: MangoTW (不在线上)   2018-04-09 22:00:00
就 for 循环内部而言,var i 是同变量,let i 则各次独立所以 var i 循环跑完早就变成 5 了,接着 timeout 才触发
作者: kolz (坚持到底)   2018-04-10 00:45:00
你let的setTimeout第一个参数不是function
楼主: yuoo1580 (da5f)   2018-04-10 02:38:00
谢谢m大和k大~ 想询问k大 意思是我的setTimeout的function需要另外写吗?
作者: LPH66 (-6.2598534e+18f)   2018-04-10 07:02:00
kolz 说的是 setTimeout(console.log("1"), time2); 不对应要 setTimeout(function(){console.log("1");},time2);或者至少也要是 setTimeout('console.log("1")', time2);
楼主: yuoo1580 (da5f)   2018-04-10 10:52:00
好的 非常谢谢L大喔喔!! 我成功了 谢谢大家的帮忙 非常感谢

Links booklink

Contact Us: admin [ a t ] ucptt.com