双非前端字节一面面经(难度 plus ultra 版)

真是一场苦战,索性该答的都答了个七七八八加粗的是没答上来的

  1. Reconciler 如何遍历 fiber 树(先序遍历)
  2. 为什么要这么设计(这我上哪知道了)
  3. DOM 树和 fiber 树的区别
  4. diff 算法是怎么比较新旧两个树的(还没学到 diff 算法呢)
  5. 浏览器从拿到渲染树以后都经过了哪些阶段(布局→分层→分块→光栅化→直接显示(其实是合成))
  6. 为什么光栅化要由 GPU 去做(GPU 擅长光栅化的操作)
  7. 为什么会这样呢(疯了吧问这个)
  8. Webpack 和 Vite 有什么区别
  9. Vite 打包用的什么(我想也是 ESM 吧)
  10. ESM 和 CJS 区别(提到同步导入和异步导入)
  11. 微任务队列和宏任务队列都是什么
  12. 任务循环在浏览器和 Node 有什么区别(没研究过 Node 啊)
  13. Message channel 是什么(我猜是跨线程通信的手段还是什么玩意)
  14. 为什么 React 用了 Message channel 调度没用 setTimeout(React 本身是 Web worker 之类的多线程的吗?真不了解这个)
  15. 听说过 React 时间分片吗(没有)
  16. 说一下 JavaScript 是不是单线程的语言(说了 Chrome 浏览器多进程架构和单标签页有哪些线程(主线程、Web worker、网络线程、Service worker))
  17. 用过哪些设计模式(说了自己遇到的双重扩展问题)
  18. 手撕:同时允许 2 个任务执行的异步调度器(现场没撕出来,面试结束以后加微信发了一个实现过去)
  19. 手撕:两个有序数组合并成一个有序数组

感觉难度比看过的字节面经都要大

全部评论
这什么部门,好恐怖
点赞 回复 分享
发布于 昨天 21:45 广东
messagechannel应该是react用来做时间切片,通知渲染任务是否该暂停的
点赞 回复 分享
发布于 昨天 19:14 北京

相关推荐

评论
1
10
分享

创作者周榜

更多
正在热议
更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务