JavaScirpt不是单线程吗?
两个id不同的元素在浏览器是同步移动的。
如果是单线程应该是第一个id元素移动完成后,在开始移动第二个id元素。
可是是同步移动的。
setTimeout函数是否是开启线程池中的另一个线程来调用定时的函数?
主线程立刻退出MoveElement函数,执行下方的代码?
JavaScirpt不是单线程吗?
两个id不同的元素在浏览器是同步移动的。
如果是单线程应该是第一个id元素移动完成后,在开始移动第二个id元素。
可是是同步移动的。
setTimeout函数是否是开启线程池中的另一个线程来调用定时的函数?
主线程立刻退出MoveElement函数,执行下方的代码?
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
总结一下我猜题主有疑问的是同时moveElement两个元素为什么会一起移动这个问题吧。那这个其实是涉及到EventLoop这个知识点,建议去了解下,它分割成一系列的任务阶段来执行,setTimeout之后才会执行UI render,即使你定义了两个定时器去更改DOM,但它们是在同一时间被推入timer队列的。所以其实等到浏览器执行render的时候已经是两个DOM更新的过程执行完了,剩下只需要把结果渲染出来就可以了,所以看起来像同步的(实际上他们只是不同时间修改,但同时渲染)