在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ setInterval中進(jìn)行循環(huán)時(shí)間隔時(shí)間不對(duì)

setInterval中進(jìn)行循環(huán)時(shí)間隔時(shí)間不對(duì)

clipboard.png

以上全部JS代碼,想要實(shí)現(xiàn)的是每隔2秒,text文本變化一次,但是在每次輪詢完focusText數(shù)組之后,也就是text從“EXPLORE”變?yōu)椤癟IME”時(shí),間隔時(shí)間會(huì)超過(guò)2秒,請(qǐng)問(wèn)這是為什么?

回答
編輯回答
嘟尛嘴

數(shù)組越界了,應(yīng)該是

i++
if (i >= focusText.length) {
 i = 0
}
2017年11月30日 10:09
編輯回答
不將就

看了前面的答案,好像沒(méi)答到點(diǎn)子上...

======================

setInterval的行為是每隔一定時(shí)間,將回調(diào)函數(shù)放入隊(duì)列。至于何時(shí)能執(zhí)行回調(diào)函數(shù),取決于之前的代碼執(zhí)行時(shí)間。

最理想的情況是前面沒(méi)有正在執(zhí)行的代碼,那么就可以立即執(zhí)行回調(diào)函數(shù)了,不過(guò)即使這樣時(shí)間也不是準(zhǔn)確的2秒,總是要多一些的

2017年5月24日 04:51
編輯回答
凹凸曼

這是邏輯錯(cuò)誤,你的i的范圍是[0, focusText.length],而不是[0, focusText.length)。覺(jué)得代碼不按自己想的那樣跑就console.log,打印調(diào)試信息是最基本的debug方法。

2018年3月9日 02:18
編輯回答
萌小萌
// 使用i<focusText時(shí),i的范圍是[0, 1, 2, ..., focus.length],正確的應(yīng)該是[0, 1, 2, ..., focus.length - 1]
if (i < focusText.length - 1) { 
 i++
}
2017年9月10日 15:28