给你看看给大学生开10k的前端面经长啥样

大小周,面了一个小时多点,这是一面前端技术面,你们觉得问的水平怎么样呢~有四轮面试的,一面当天已oc,但是二面我先拖着了不太想面。。。

面试题

  1. 自我介绍
  2. 讲一下事件循环是什么
  3. 你觉得request animation frame这是一个宏任务还是微任务,它的执行时机是大概什么时候(其实既不是宏任务也不是微任务)
  4. requestIdleCallback的执行时机是什么时候
  5. 函数执行里面,这个过程是怎样的,有什么事情是需要额外注意的
  6. 对于浏览器的垃圾回收机制,你是怎么理解的
  7. 里面的引用计数器是怎么个原理的,如何去解决垃圾回收问题
  8. 你vue更熟悉一点还是React熟悉一点
  9. React的优化你是怎么做的
  10. React fiber你有了解过吗,相关资料是怎样的,那你觉得核心是怎样的
  11. 它跟普通的ssr有什么区别,为什么要用这个
  12. React Server component有什么优势
  13. 拷打ai项目当时为什么用sse不用WebSocket
  14. 实习项目的心跳重连,断线,WebSocket这个是怎么做的
  15. 断线的时候消息返回是怎么处理的,你怎么去保证里面的数据一致性
  16. webpack迁移vite项目的时候,是怎么做的,怎么个流程,怎么解决联邦依赖,构建,代码兼容问题
  17. 在权限管理RBAC项目里你怎么实现状态管理的,二变一系模型有接触吧,怎么结合起来的
  18. 你这里面怎么实现权限的父子节点继承
  19. 那如果是服务端的节点继承呢,你会怎么做
  20. 你里面的白名单放行处理事怎么搞的
  21. 做题:一个链表怎么判断有环,再深入两个单向链表,怎么去判断是否相交,
  22. 你上面给了双指针和哈希表两个方案,两者的时间复杂度和空间复杂度的区别是什么
  23. 做题:dfs,怎么求出矩阵网格里面左上角到右下角的最短路径,然后不可经过黄色方格
  24. 反问

(应该还有几个问题我忘记录了)

简略版答案

简单的答案如下,当然面试不能讲得这么简略,不然会挖深问

1. 事件循环(Event Loop)是什么?

事件循环是浏览器执行JS代码的机制,分为宏任务(MacroTask)微任务(MicroTask)

  • 宏任务:setTimeout、setInterval、I/O、UI渲染
  • 微任务:Promise.then、MutationObserver执行顺序:同步代码 → 微任务 → 宏任务,循环执行。

2. requestAnimationFrame 是宏任务还是微任务?执行时机?

  • 属于宏任务,但优先级高于普通宏任务(如 setTimeout)。
  • 执行时机:在浏览器渲染前执行(每帧一次),适合动画优化。

3. requestIdleCallback 的执行时机?

  • 在浏览器空闲时执行(帧渲染完成后,无用户交互时)。
  • 适合执行低优先级任务(如日志上报、预加载)。

4. 函数执行过程及注意事项

  1. 创建执行上下文(变量提升、作用域链)。
  2. 执行代码,处理变量赋值、函数调用。
  3. 注意:闭包可能导致内存泄漏,避免滥用全局变量。

5. 浏览器垃圾回收机制(GC)

  • 引用计数:统计对象引用次数,归零时回收。
  • 问题:循环引用无法回收(如 A→B→A)。
  • 解决:现代浏览器改用标记-清除算法(从根对象遍历,标记不可达对象并回收)。

6. Vue 和 React 熟悉度

更熟悉 React,因项目经验更多,熟悉Hooks、Fiber架构及性能优化(如 memouseMemo)。Vue 仅基础使用(Options API)。

7. React 优化方案

  1. 减少渲染:React.memo、useMemo、useCallback。
  2. 代码分割:React.lazy + Suspense。
  3. 虚拟列表:react-window 优化长列表。

8. React Fiber 核心

  • 目标:解决同步渲染阻塞问题,支持可中断更新。
  • 原理:将渲染拆分为多个小任务(Fiber节点),通过优先级调度和双缓存机制优化性能。

9. React Server Component (RSC) vs SSR

  • SSR:服务端渲染HTML, hydration后交互。
  • RSC:组件在服务端动态渲染,零客户端JS,适合静态内容(如CMS)。

10. SSE vs WebSocket

  • SSE:单向通信(服务端推数据),HTTP协议,适合实时日志。
  • WebSocket:全双工通信,适合高频交互(如聊天室)。

11. WebSocket 心跳重连 & 数据一致性

  • 心跳包:定时发送 ping/pong 检测连接。
  • 断线处理:重连后通过消息ID或时间戳同步数据,确保不重复/丢失。

12. Webpack 迁移 Vite

  1. 替换配置:vite.config.js 替代 webpack.config.js。
  2. 联邦依赖:改用 Vite 的 预构建依赖(optimizeDeps)。
  3. 兼容问题:替换 require 为 import,处理动态加载。

13. RBAC 权限管理

  • 状态管理:用 Redux 或 Context 存储权限树。
  • 父子继承:递归检查父节点权限(如 user.canAccess(child))。
  • 服务端继承:API 返回完整权限树,前端缓存。

14. 白名单放行

  • 定义:/public 路由无需权限。
  • 实现:路由守卫中检查 meta: { whiteList: true }。

15. 链表判环 & 相交

  • 判环:快慢指针(O(n)时间,O(1)空间)。
  • 判相交:哈希表:O(m+n)时间,O(m)空间。双指针:O(m+n)时间,O(1)空间(遍历两链表调整指针)。

16. 矩阵最短路径(DFS)

  • DFS回溯:从起点探索四个方向,避开障碍,记录最短路径。
  • 优化:用 visited 矩阵避免重复访问,或改用 BFS(更高效)。
#前端##牛客创作赏金赛#
全部评论
10k?这才10k?
12 回复 分享
发布于 2025-04-30 17:20 广西
10k就这么问了吗要这样我就值3k
4 回复 分享
发布于 2025-05-07 16:43 山西
绷不住了
4 回复 分享
发布于 2025-04-30 17:59 北京
?这怕不是要招超人
3 回复 分享
发布于 2025-05-08 19:06 广东
已老实
2 回复 分享
发布于 2025-04-30 16:58 广东
接好运
1 回复 分享
发布于 2025-05-01 17:56 四川
已老实
点赞 回复 分享
发布于 2025-05-27 22:56 广东
问得挺细
点赞 回复 分享
发布于 2025-05-12 04:59 北京
还真是,现在没有宏任务,微任务的说法了
点赞 回复 分享
发布于 2025-05-10 18:29 广东
已老实
点赞 回复 分享
发布于 2025-05-06 17:52 上海
你可以没用过,但你不能不知道
点赞 回复 分享
发布于 2025-05-06 14:30 湖南
已老实
点赞 回复 分享
发布于 2025-05-05 20:02 山东
我说我主后端会前端,这些问题我一个都不懂
点赞 回复 分享
发布于 2025-05-05 11:17 广东
已老实
点赞 回复 分享
发布于 2025-05-04 16:05 广东
第17点“二变一系模型”是什么,搜了没搜到
点赞 回复 分享
发布于 2025-05-04 09:26 广东
已老实
点赞 回复 分享
发布于 2025-05-03 15:27 福建
这是都答出来了吗好强
点赞 回复 分享
发布于 2025-05-02 22:59 江西
mark学习
点赞 回复 分享
发布于 2025-05-02 18:53 广东
应届这么夸张的吗,大小周 10k,base 广州的?
点赞 回复 分享
发布于 2025-05-02 18:41 广东
mark学习
点赞 回复 分享
发布于 2025-05-02 15:57 香港

相关推荐

无任何八股麻了问项目,问物理算法!麻了,又问物理相关的内容!比如他问我,扇形检测算法怎么写!拜托,我咋知道!看来面客户端之后还得去恶补物理检测算法。继续问简单的:怎么判断capsule和球体是否相交,一开始没答上来,但是面试官真的能捞,狂提示,狂拆解他问我capsule的特征跟圆柱体不一样,而且更经济,然后问我为什么,我想了下,答:因为capsule的边界到capsule中轴的线段的最短距离就是R半径!然后问我,接下来怎么算点到线段的距离,我想了半天,终于憋出来:我说求cos夹角,同号就是(其垂直落点)在线段外,异号就是在线段内。然后他又问我,怎么算点到直线距离,我跟他说,用直线方程求,他跟我说太浪费了,能不能用叉积或者点乘求(又给提示了,米的面试官怎么这么温柔),最终终于答出来了,说用叉乘求就行。后面问了一些跟项目有关的,比如说:有些精确判定的动作游戏,是会把物理碰撞框绑在武器上的,这种操作了解吗,怎么判定的,我跟他说用UE的扫掠,一帧帧判。然后他又问我,扫掠不支持旋转,在判定的时候,capsule旋转了,怎么办!tmd我怎么知道!想了半天,跟他说:把1帧内的变化插值成小的子帧,一个个去判定(其实都是懵的)。最后问我,UE的able系统,里面有很多子task,这些task都是UObject,一个多人竞技游戏,可能放一个技能就会有几十个task,这样的话同一时间会有很多UObject,怎么办。想了半天,跟他说,不用创建task的实例,只上传Context(上下文信息),再由每个task统一调用执行。哎都不知道到底答的怎么样。麻说实话米的面试体验确实顶级,会循序渐进,你答不上来他会提示,真的很好,但是不知道能不能过还有,为什么面试官长得像我室友啊!我真的没绷住!
我是莲莲:小寻子可爱
查看9道真题和解析
点赞 评论 收藏
分享
评论
43
121
分享

创作者周榜

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