以上全部JS代码,想要实现的是每隔2秒,text文本变化一次,但是在每次轮询完focusText数组之后,也就是text从“EXPLORE”变为“TIME”时,间隔时间会超过2秒,请问这是为什么?
以上全部JS代码,想要实现的是每隔2秒,text文本变化一次,但是在每次轮询完focusText数组之后,也就是text从“EXPLORE”变为“TIME”时,间隔时间会超过2秒,请问这是为什么?
// 使用i<focusText时,i的范围是[0, 1, 2, ..., focus.length],正确的应该是[0, 1, 2, ..., focus.length - 1]
if (i < focusText.length - 1) {
i++
}
看了前面的答案,好像没答到点子上...
======================
setInterval
的行为是每隔一定时间,将回调函数放入队列。至于何时能执行回调函数,取决于之前的代码执行时间。
最理想的情况是前面没有正在执行的代码,那么就可以立即执行回调函数了,不过即使这样时间也不是准确的2秒,总是要多一些的
这是逻辑错误,你的i
的范围是[0, focusText.length]
,而不是[0, focusText.length)
。觉得代码不按自己想的那样跑就console.log
,打印调试信息是最基本的debug方法。
10 回答11.2k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
数组越界了,应该是