[問題] 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