当前位置:知之问问>百科知识>运行时,为什么会先执行第2个setInterval,然后再执行第1个setInterval.求帮助分析,谢谢.

运行时,为什么会先执行第2个setInterval,然后再执行第1个setInterval.求帮助分析,谢谢.

2023-03-15 18:46:55 编辑:join 浏览量:645

运行时,为什么会先执行第2个setInterval,然后再执行第1个setInterval.求帮助分析,谢谢.

你写的有问题,首先是for循环里有两个setlnterval,按你的想法就是先执行完第慧野一个再执行第二个,这是for循环,当他到第一个setlnterval时,第一个setlnterval只是25毫秒执行一次,但这个for循环不会等到他执行完,而是直接返回,然后再循环跑到第二个,这还没完当他跑到第二个时赋值k=380; var x= setInterval(function s(){k<=380?o.style.height=(k+=10)+"px":clearInterval(x);},25)}这是第一个,指昌按说第一个k的应该是10或20,但是错了第一个setlnterval在执行行的时候直接用的是第二个setlnterval里面定义的k了,(变量重名了,还有变量的作用域和优先级),这时两个都在运行了,你看到的是只有第二个在走是因为第一个div的高一直在用第二个div的高,虽然他自己也+10,但第二个比第一个快5毫秒,你根本看不见第一个的变化,太快了,以至于第二个完了,k这时等于0了,所以你看到的是第一个才开始运行改成2000第一无法运行,是因为他(第一个setlnterval)已满足条唯碧扒件了,k已经定于380,他(第一个setlnterval)就停止,上边为什么会运行,就是你设的时间,第二个比第一个快5毫秒

标签:setInterval,会先,执行

版权声明:文章由 知之问问 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.zhzhwenwen.com/article/17016.html
热门文章