给你看看给大学生开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 香港

相关推荐

NBA球星伦纳德:jd是这样的,工作连拧螺丝都算不上
点赞 评论 收藏
分享
今天周一休息,突发奇想写一篇阶段总结。如题,我已经去了一个和Java彻底毫无关联的行业。曾经我以为自己能在计算机行业发光发热,没想到刚入行一年多就当了逃兵。从最开始的热爱到现在一看到代码就厌恶,不知道自己经历了什么。所以我去干什么了?答案是:在成都当了租房销售。上班那会压力大了就念叨着去干租房中介,但是一直下不去这个决心,想着自己学了四年多的计算机知识,终究还是不甘心。终于在某一天准备八股文的时候,看着无数篇和工作内容关系不大的理论知识,那一刻下定决心,决定尝试一下销售行业,也算是给自己一个交代。后面阴差阳错的投了成都自如去当租房管家,没想到面试很顺利,在当天一百多个面试的人里面,我成为了为数不多通过的几个幸运儿之一。目前已经培训通过,正式入职,也开了单,也有压力但是每天过得很开心,真心喜欢那种和人交流的感觉,哪怕是最后没有选择找我租房。说这些也是想告诉那些大三,大四正在找Java实习而焦虑的同学:你们现在还年轻,选择很多,容错率也很高,可以尽情去尝试自己喜欢的行业和工作。不用因为某一次的面试没通过或者简历石沉大海而焦虑,更不用因为身边人都在挤编程的独木桥就强迫自己跟风。也算是自己的碎碎念吧,也希望自己能在新的领域取得一点小成就。也祝牛油工作顺利!
沉淀小子:干啥都不丢人啊,生存是必须要的,销售很考验一个人综合素质能力的,好的销售人脉和资源可不比写字楼的白领差啊
点赞 评论 收藏
分享
评论
43
121
分享

创作者周榜

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