1 回答
TA貢獻(xiàn)361條經(jīng)驗(yàn) 獲得超191個(gè)贊
因?yàn)槟愕挠?jì)時(shí)器重復(fù)了,沒有停止,逐個(gè)分析一下
一開始:num=5,調(diào)用setTimerout
第1次顯示 : num=4 ,判斷——調(diào)用setInterval(第一次調(diào)用)
第2次顯示:num=3,判斷——調(diào)用setInterval(第二次調(diào)用),調(diào)用了2次了,下一次num就直接跳2次,即執(zhí)行2次num-1
第3次顯示:num=1,判斷——調(diào)用setInterval(第三次調(diào)用),調(diào)用了3次了,下一次num就直接跳3次,即執(zhí)行3次num-1
第4次顯示:num=0?。ㄟ@里會(huì)顯示num=0,然后執(zhí)行,只是太快了你看不見,你可以將執(zhí)行代碼改成alert("123")試試),
因?yàn)閳?zhí)行num跳3次,其中第一次執(zhí)行完num就會(huì)等于0
然后判斷num==0,不調(diào)用計(jì)時(shí)器,執(zhí)行程序,這時(shí)候計(jì)時(shí)器還是被調(diào)用了3次,繼續(xù)!下一次num還是跳3次
第5次顯示:num=-3..............無限循環(huán)。
其實(shí)問題很簡(jiǎn)單就是加上clearInterval, 但執(zhí)行的時(shí)候可能會(huì)沒有發(fā)現(xiàn)其實(shí)有第4步,也就是計(jì)時(shí)器疊加執(zhí)行的原理
添加回答
舉報(bào)
