前端面试题
文章平均质量分 85
[前端]-小王
热爱计算机、对编程很有兴趣、欢迎一起共享探讨学习!
展开
-
事件循环- Event Loop(消息循环-Message Loop)续写(如何理解 JS 的异步?如何理解JS 的事件循环?JS 中的计时器能做到精确计时吗?)
事件循环- Event Loop(消息循环-Message Loop)续写(如何理解 JS 的异步?如何理解JS 的事件循环?JS 中的计时器能做到精确计时吗?原创 2023-08-16 16:58:23 · 109 阅读 · 0 评论 -
事件循环- Event Loop(消息循环-Message Loop)
如果程序需要同时执行多块代码,主线程就会启动更多的线程来执行代码,所以一个进程中可以包含多个线程。一个进程至少有一个线程,所以在进程开启后会自动创建一个线程来运行代码,该线程称之为主线程。默认情况下,浏览器会为每个标签页开启一个新的渲染进程,以保证不同的标签页之间不相互影响。浏览器进程内部会启动多个线程处理不同的任务。为了避免相互影响,为了减少连环崩溃的几率,当启动浏览器后,它会自动启动多个进程。程序运行需要有它自己专属的内存空间,可以把这块内存空间简单的理解为进程。渲染进程启动后,会开启一个。原创 2023-08-16 16:47:07 · 105 阅读 · 0 评论 -
前端面试题---浏览器是如何渲染页面的?什么是 reflow?什么是 repaint?为什么 transform 的效率高?
reflow 的本质就是重新计算 layout 树。当进行了会影响布局树的操作后,需要重新计算布局树,会引发 layout。为了避免连续的多次操作导致布局树反复计算,浏览器会合并这些操作,当 JS 代码全部完成后再进行统一计算。所以,改动属性造成的 reflow 是异步完成的。也同样因为如此,当 JS 获取布局属性时,就可能造成无法获取到最新的布局信息。浏览器在反复权衡下,最终决定获取属性立即 reflow。repaint 的本质就是重新根据分层信息计算了绘制指令。原创 2023-08-16 15:59:48 · 183 阅读 · 0 评论