双非前端字节一面面经(难度 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. 手撕:两个有序数组合并成一个有序数组

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

全部评论
如果是校招的话算基础 得好好看源码
点赞 回复 分享
发布于 昨天 19:08 江苏
这什么部门,好恐怖
点赞 回复 分享
发布于 03-30 21:45 广东
messagechannel应该是react用来做时间切片,通知渲染任务是否该暂停的
点赞 回复 分享
发布于 03-30 19:14 北京

相关推荐

03-30 00:09
吉林大学 C++
点赞 评论 收藏
分享
部门是中国交易与广告,感觉问了好多延展性问题,尤其场景题,答得支支吾吾的,感觉自己一直在打太极,面完过了两天果然挂了,到现在还没被捞起🥹1. 按照惯例,简单做个自我介绍吧。2. 刚刚提到对前端比较感兴趣,能具体说说原因吗?主要对哪一类的项目更感兴趣?3. 简历上的两个项目,你想先拿哪一个出来聊一聊?4. 做 Chat 这个项目的主要动机是什么?是想做练手项目,还是想探索一些特定技术?5. 在做 Chat 项目的过程中,有遇到过什么比较有挑战或卡点的问题吗?6. 遇到解码乱码这个卡点问题时,大概是怎样去解决的?7. 针对不同语言(如阿拉伯语从右到左书写、UTF-8 编码字节数不同等)在解码过程中的特性,是否有做更深层的探索或思考?是否有了解过开源社区解决此类多语言问题的通用方案?8. 在 Chat 项目中,还有其他类似的技术挑战或亮点可以分享吗?9. 项目里设计的缓冲区,有考虑过设置大小限制防止内存占用过大吗?10. 自己实现的组件与开源社区成熟的组件相比,有什么区别?还有哪些改进空间?11. 了解受控组件和非受控组件的概念吗?12. 作为 UI 库的开发者,在什么场景下应该使用受控组件,什么场景下该用非受控组件?能具体举例说明吗?13. 如果去实现一个 Editor(编辑器)组件,它应该是设计成受控的还是非受控的?14. 作为一个开发者,当你在 NPM 上找一个 React 编辑器组件来使用时,你期望它的用法是怎样的?你会想去强控制它内部的各种输入状态吗?15. 手写:flatten 函数,将多层嵌套结构的数组拍平为一维数组。16. 手写:reduce 方法,要求功能与原生的 reduce 完全一致。
查看16道真题和解析
点赞 评论 收藏
分享
smile丶snow:感觉可以加一些ai相关的内容吧。现在面试很少能逃掉这些问题。羡慕里面感觉缺少一个项目背景。比如第二个项目后台管理系统…你为什么要做这个后台管理系统呢?是为了解决什么问题。比如你管理一个商品列表的增加减少。需要一个背景吧。哦或者说你第一个电子书那个是c端的,你肯定需要一个管理系统吧,那就是第二个后台管理系统,但这两个难道不应该是一个项目吗?可以稍微包装一下,最起码让人看着不是玩具项目。个人观点。
点赞 评论 收藏
分享
评论
2
25
分享

创作者周榜

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