JavaScirpt线程的问题

$codeH11E\)MZ/code3_S[{RZ]2WC`W.png

JavaScirpt不是单线程吗?
两个id不同的元素在浏览器是同步移动的。
如果是单线程应该是第一个id元素移动完成后,在开始移动第二个id元素。
可是是同步移动的。
setTimeout函数是否是开启线程池中的另一个线程来调用定时的函数?
主线程立刻退出MoveElement函数,执行下方的代码?

阅读 1.9k
1 个回答

总结一下我猜题主有疑问的是同时moveElement两个元素为什么会一起移动这个问题吧。那这个其实是涉及到EventLoop这个知识点,建议去了解下,它分割成一系列的任务阶段来执行,setTimeout之后才会执行UI render,即使你定义了两个定时器去更改DOM,但它们是在同一时间被推入timer队列的。所以其实等到浏览器执行render的时候已经是两个DOM更新的过程执行完了,剩下只需要把结果渲染出来就可以了,所以看起来像同步的(实际上他们只是不同时间修改,但同时渲染)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题