请教大神,为什么倒数是5,4,3,1,-3的
1 回答
stone310
TA贡献361条经验 获得超191个赞
因为你的计时器重复了,没有停止,逐个分析一下
一开始:num=5,调用setTimerout
第1次显示 : num=4 ,判断——调用setInterval(第一次调用)
第2次显示:num=3,判断——调用setInterval(第二次调用),调用了2次了,下一次num就直接跳2次,即执行2次num-1
第3次显示:num=1,判断——调用setInterval(第三次调用),调用了3次了,下一次num就直接跳3次,即执行3次num-1
第4次显示:num=0!(这里会显示num=0,然后执行,只是太快了你看不见,你可以将执行代码改成alert("123")试试),
因为执行num跳3次,其中第一次执行完num就会等于0
然后判断num==0,不调用计时器,执行程序,这时候计时器还是被调用了3次,继续!下一次num还是跳3次
第5次显示:num=-3..............无限循环。
其实问题很简单就是加上clearInterval, 但执行的时候可能会没有发现其实有第4步,也就是计时器叠加执行的原理
添加回答
举报
0/150
提交
取消