为了账号安全,请及时绑定邮箱和手机立即绑定

页面提示跳转倒数问题

页面提示跳转倒数问题

homboy 2016-08-17 18:54:19
请教大神,为什么倒数是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步,也就是计时器叠加执行的原理

查看完整回答
1 反对 回复 2016-08-18
  • 1 回答
  • 0 关注
  • 1224 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信