你写的有问题,首先是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,会先,执行