起因
前段时间准备面试,刷了一堆八股文,感觉自己什么都懂了。结果真到面试的时候,面试官一追问就露馅——"你说 React 用了 Fiber,那 Fiber 的 shouldYield 机制在什么条件下会中断渲染?"直接卡住。
后来复盘才想明白:背八股和被面试是两件事。八股文是你主动回忆,面试是被动追问,而且追问的链路你是不可预测的。你永远不知道下一个问题会从哪个角度切入。
我就想,能不能让 AI 来当面试官?不是那种你问它答的 QA 模式,而是真正的模拟面试——它提问,你回答,它根据你的回答追问,面完给你打分。
于是就有了这个项目。
它跟直接问 ChatGPT 有什么区别
区别很大。
你问 ChatGPT "React 的 Fiber 是什么",它会给你一段完美的解释。但这不是面试。
面试的节奏是:面试官先问你一个开放问题,你回答,它从你的回答里抓漏洞或者亮点,然后追问。追问的方向取决于你说了什么。你可能上一秒还在聊 React 的更新机制,下一秒就被问到时间切片和 requestIdleCallback 的关系。
这个 Skill 模拟的就是这个节奏。它一次只问一个问题,你回答完它才追问,而且会根据你的回答质量决定追问深度——回答得好的话题可能追问 2-3 层就过了,回答不好的会一直往下挖。
四种面试官风格
面试官也不是铁板一块。我在 Skill 里做了四种风格,因为真实世界的面试官本来就是不一样的。
追问深挖型是那种让人压力最大的——它会在一个话题上持续深入 3-5 层,直到触及你的知识边界。你说了 Fiber,它问你 Fiber 怎么实现的;你说完了,它问时间切片什么时候中断渲染;你答上来了,它继续问 concurrent mode 下 useEffect 和 useLayoutEffect 的行为差异。
温和引导型完全反过来,语气平和,你不回的时候它还会给提示。适合面试容易紧张的人先用这个模式建立信心,再切换到更高难度的风格。
业务场景型是我个人觉得最有价值的。它不直接问你"什么是性能监控",而是说:"财务人员的电脑性能很差,页面经常卡顿,你怎么提前发现这个问题?"你需要从业务场景出发,把技术方案包装进去。这种能力在实际面试中比背八股有用得多。
压力追问型就是那种节奏极快的面试官,"那你为什么没想到加节流?""这个场景你当时怎么处理的?"模拟的是大厂二面三面的压力环境。
JD 定制模式
后来我又加了一个功能:你可以把目标岗位的 JD 粘贴进去,它会分析 JD 的技术栈要求,自动调整面试的侧重方向。
比如 JD 里写了"熟练使用 React,了解 Next.js",它就会在技术原理环节集中考 React 和 SSR 相关的内容,而不是平均分配到 Vue、Angular 上。面完之后还会给你一份 JD 匹配度分析,告诉你哪些能力达标了、哪些还有差距。
这个功能是我自己准备面试的时候最想要的——比起漫无目的地刷题,针对目标岗位定向准备效率高太多了。
内置知识库
Skill 附带了一套结构化的前端面试知识库,不是简单的问题列表,而是按主题分类的完整知识体系。
覆盖了 JS(事件循环、Promise、闭包、手写题)、CSS(BFC、Flex/Grid、手写布局)、TypeScript、React(Fiber、Hooks、Diff)、Vue(响应式、Diff 算法)、浏览器原理、工程化(Vite/Webpack)、微前端、AI 方向(Agent/RAG/MCP)这些核心考点。
还有一些真实的面经整理,比如美团三轮面试的完整复盘、字节 TikTok Shop 二面的真题分析。面试官会从这些资料里选题,不是随机出题,而是根据你的回答和当前面试阶段有针对性地选。
知识库还有一个特点:它是按面试的实际节奏组织的,不是按知识点组织的。比如"事件循环"这个考点,它不是把所有相关知识堆在一起,而是按面试中可能被问到的频率分了梯队——第一梯队的题出现概率最高,第三梯队的题只在追问到很深的时候才会出现。
编码题怎么练
面试里的编码环节通常不是让你从零写一个应用,而是给你一段代码让你分析输出,或者让你手写一个工具函数。
Skill 里内置了 10 道高频编码题,涵盖了面试最常考的类型:
- 事件循环输出顺序分析(最经典的代码输出题)
- Promise 串行执行(异步流程控制)
- 并发限制的异步调度器(大厂最爱考的)
- 手写 reduce、防抖、节流
- 三栏布局(CSS 手写)
- React Hooks 执行分析(Hooks 闭包陷阱)
- Promise.all 实现
- EventEmitter 发布订阅
每道题都附带了参考实现和追问方向。追问方向很重要,因为面试官很少只让你写完就过了,他一定会追问边界情况。
怎么用
- 把项目文件夹复制到 Claude Code 的 skills 目录:
cp -r mock_interview ~/.claude/skills/
2. 在 Claude Code 里直接说"模拟面试"、"考考我"、"面我一下"之类的,Skill 会自动触发。 3. 如果想按 JD 练,说"按 JD 面我"然后粘贴 JD 内容就行。
面试结束会给你一份结构化反馈,五个维度各打 1-5 分:项目真实性&深度、技术原理理解、问题解决&工程思维、编码基本功、技术广度&前沿关注。还会告诉你哪些是亮点、哪些需要加强、推荐复习哪些资料。
一些使用建议
先用温和引导型做一次完整面试,了解整个流程和自己的大致水平。
然后切换到追问深挖型,找到自己的知识边界。被问到说不出来的地方,就是你需要补的。
如果马上有面试,用JD 定制模式,把目标岗位的 JD 粘进去,针对性地练 2-3 轮。
业务场景型建议所有人都试试。很多候选人技术原理背得很熟,但面试官一包装成业务场景就不会了。这个能力只能通过练习来提升,光看书没用。
最后
这个工具不能替代真正的面试准备。该刷的八股还是要刷,该做的项目还是要做。但它能帮你发现一个很要命的问题:你以为自己掌握了的知识,在追问下其实并不牢固。
这种盲区,只有通过模拟面试才能暴露出来。
项目是开源的,有兴趣可以试试。如果觉得有用,欢迎 star。
如果这篇文章对你有帮助,点个赞再走呗~