Yihui’s Blog

面试准备中心

系统化的前端面试准备资料,覆盖技术面试、算法笔试、面试经验等全方位内容

📊 内容概览

  • 技术面试题库: 20+ 篇技术专题面试题
  • 算法笔试题: 20+ 篇 LeetCode 题解
  • 面试经验: 8 家公司真实面试经验
  • 通用资料: 6 篇面试准备通用文档

🎯 快速导航

按公司准备

按技术栈准备

按题型准备


📝 技术面试题库

JavaScript 面试专题

高频手撕代码 ⭐⭐⭐

重要程度: 🔥🔥🔥 必须掌握

📚 题库文章:

  1. JavaScript 高频手撕 ⭐⭐⭐
  2. JavaScript 高频手撕(副本)

核心题型:

  • 手写 call、apply、bind
  • 手写 Promise (A+ 规范)
  • 手写深拷贝
  • 手写防抖节流
  • 手写继承
  • 手写 new 操作符
  • 手写函数柯里化
  • 手写发布订阅模式

准备建议:

  • ✅ 至少手写 3 遍以上
  • ✅ 理解原理而非死记硬背
  • ✅ 能讲清楚每一行代码的作用
  • ✅ 准备不同实现方式的优缺点

输出判断题 ⭐⭐

重要程度: 🔥🔥 重点掌握

📚 题库文章:

  1. JavaScript 输出判断

考察点:

  • 作用域与闭包
  • this 指向
  • 事件循环
  • 原型链
  • 类型转换
  • 变量提升

准备建议:

  • ✅ 先尝试自己写出答案
  • ✅ 运行代码验证
  • ✅ 分析每道题的考点
  • ✅ 总结常见陷阱

综合面试题 ⭐⭐

📚 题库文章:

  1. JavaScript 面试题汇总(上)
  2. JavaScript 面试题汇总(下)
  3. 小滴课堂 JS 题目汇总

涵盖主题:

  • 数据类型与类型判断
  • 闭包与作用域
  • 异步编程
  • ES6+ 新特性
  • 性能优化
  • 安全防护

专项题库

📚 专项训练:

  1. JavaScript 数组去重 - 8+ 种实现方式

Vue 面试专题

📚 题库系列:

  1. Vue 3 升级改变 (Vue/面试题/)
  2. Vue 面试题汇总(上)(Vue/面试题/)
  3. Vue 面试题汇总(下)(Vue/面试题/)

高频考点:

  • 响应式原理 ⭐⭐⭐
  • 虚拟 DOM 与 Diff 算法 ⭐⭐⭐
  • 组件通信方式 ⭐⭐
  • 生命周期钩子 ⭐⭐
  • Computed vs Watch ⭐⭐
  • keep-alive 原理 ⭐⭐
  • nextTick 原理 ⭐⭐⭐
  • Vue Router 实现 ⭐⭐
  • Vuex/Pinia 状态管理 ⭐⭐

必读文章:


React 面试专题

📚 题库系列:

  1. React 面试题集合(一)(React/面试题/)
  2. React 面试题集合(二)(React/面试题/)
  3. React 面试题集合(三)(React/面试题/)

高频考点:

  • Hooks 原理 ⭐⭐⭐
  • Fiber 架构 ⭐⭐⭐
  • Diff 算法 ⭐⭐⭐
  • 生命周期 ⭐⭐
  • 性能优化 ⭐⭐⭐
  • Context API ⭐⭐
  • 状态管理 ⭐⭐
  • 事件系统 ⭐⭐

必读源码学习:

  • React 架构与哲学 (React/源码学习/)
  • Fiber 协调 (React/源码学习/)
  • Hooks 实现细节 (React/源码学习/)

TypeScript 面试专题

📚 题库文章:

  1. TypeScript 面试专题(一)(TypeScript/面试题/)
  2. TypeScript 面试专题(二)(TypeScript/面试题/)

考察重点:

  • 类型系统基础 ⭐⭐
  • 泛型 ⭐⭐⭐
  • 工具类型 ⭐⭐
  • 类型体操 ⭐⭐⭐
  • 类型推断 ⭐⭐
  • 装饰器 ⭐

实战练习:

  • BFE-TS 类型体操练习 - 60 道题目

CSS 面试专题

📚 题库文章:

  1. CSS 面试题汇总 (CSS/面试题/)

高频考点:

  • 盒模型 ⭐⭐
  • BFC ⭐⭐⭐
  • Flex 布局 ⭐⭐⭐
  • Grid 布局 ⭐⭐
  • 定位 ⭐⭐
  • 层叠上下文 ⭐⭐
  • CSS 优先级 ⭐⭐
  • 响应式设计 ⭐⭐

必读文章:


计算机网络面试专题

📚 题库文章:

  1. 计算机网络面试题 (计算机网络/面试题/)

高频考点:

  • HTTP/HTTPS ⭐⭐⭐
  • TCP/UDP ⭐⭐⭐
  • 三次握手四次挥手 ⭐⭐⭐
  • 跨域问题 ⭐⭐⭐
  • 缓存机制 ⭐⭐⭐
  • WebSocket ⭐⭐
  • CDN ⭐⭐
  • 安全相关 (XSS, CSRF) ⭐⭐⭐

必读专题:


Node.js 面试专题

📚 题库文章:

  1. Node.js 前端面试题 (面试通用/)

考察重点:

  • 事件循环 ⭐⭐⭐
  • Stream 流 ⭐⭐
  • Buffer ⭐⭐
  • 进程与线程 ⭐⭐
  • 中间件机制 ⭐⭐
  • 错误处理 ⭐⭐

必读系列:

  • Node 事件循环可视化指南 - 完整系列
  • Node 笔记系列 - 9 章连载

浏览器专题

📚 题库文章:

  1. 浏览器原理面试题 (浏览器工作原理/)

核心考点:

  • 浏览器渲染流程 ⭐⭐⭐
  • 重排与重绘 ⭐⭐⭐
  • 性能优化 ⭐⭐⭐
  • 事件循环 ⭐⭐⭐
  • 垃圾回收 ⭐⭐
  • 安全机制 (CSP, CORS) ⭐⭐

必读文章:


🎯 算法题

LeetCode 刷题

公司专题 (CodeTop)

字节跳动 ⭐⭐⭐

📚 题库文章:

  1. 字节跳动 CodeTop(一)
  2. 字节跳动 CodeTop(二)
  3. 字节跳动 CodeTop(三)

刷题建议:

  • 按出现频率从高到低刷
  • 每道题至少独立写 2 遍
  • 总结题型规律

腾讯 ⭐⭐⭐

📚 题库文章:

  1. 腾讯 CodeTop

美团 ⭐⭐

📚 题库文章:

  1. 美团 CodeTop

拼多多 ⭐⭐

📚 题库文章:

  1. 拼多多 CodeTop

快手 ⭐⭐

📚 题库文章:

  1. 快手 CodeTop

按难度刷题

📚 题库分类:

  1. 企业题库 (leetcode/codeTop/)
  2. 中等题集合(一)(leetcode/中等题/)
  3. 中等题集合(二)(leetcode/中等题/)

刷题顺序建议:

  1. 先刷简单题(50 道)- 建立信心
  2. 再刷中等题(100 道)- 重点突破
  3. 最后刷困难题(20 道)- 拔高水平

牛客网刷题

📚 题库系列 (按 10 题一组):

  1. 牛客网刷题 1-10
  2. 牛客网刷题 11-20
  3. 牛客网刷题 21-30
  4. 牛客网刷题 31-40
  5. 牛客网刷题 41-50
  6. 牛客网刷题 51-60

错题复习:

  • 错题本 - 重点回顾

刷题策略:

  • ✅ 每天 3-5 题
  • ✅ 及时总结归纳
  • ✅ 重复刷错题
  • ✅ 掌握题型模板

算法基础

📚 基础知识:

  1. 算法与数据结构:六大排序算法

必须掌握的数据结构:

  • 数组 ⭐⭐⭐
  • 链表 ⭐⭐⭐
  • 栈与队列 ⭐⭐⭐
  • 哈希表 ⭐⭐⭐
  • 树(二叉树、BST、堆) ⭐⭐⭐
  • 图 ⭐⭐

必须掌握的算法:

  • 排序算法 ⭐⭐⭐
  • 二分查找 ⭐⭐⭐
  • 双指针 ⭐⭐⭐
  • 滑动窗口 ⭐⭐
  • 动态规划 ⭐⭐⭐
  • 贪心算法 ⭐⭐
  • 回溯算法 ⭐⭐⭐
  • DFS/BFS ⭐⭐⭐

💼 面试经验

互联网大厂面经

哔哩哔哩

📚 哔哩哔哩面经

面试流程: 技术一面 → 技术二面 → HR 面 技术栈: Vue、React、性能优化 难度: ⭐⭐⭐


快手

📚 快手面经

面试流程: 笔试 → 技术一面 → 技术二面 → HR 面 技术栈: React、算法、系统设计 难度: ⭐⭐⭐⭐


美团

📚 美团面经

面试流程: 笔试 → 技术一面 → 技术二面 → 技术三面 → HR 面 技术栈: Vue、Node.js、算法 难度: ⭐⭐⭐⭐


其他公司面经

📚 面经列表:

  1. 朴朴面经
  2. 星网锐捷面经
  3. 面试问答 - 通用问答集

📚 通用资料

综合面试资料

📚 通用文档:

  1. 前端工程师面试手册 ⭐⭐⭐
  2. 10 万字前端面试书总结 ⭐⭐⭐
  3. Node.js 前端面试题
  4. 计算机网络面试题
  5. 算法与数据结构:六大排序算法
  6. share.md (../面试通用/)

使用建议:

  • ✅ 面试前一周系统过一遍
  • ✅ 重点标记高频考点
  • ✅ 准备自己的答案版本

🎓 校招经验

校招总结

📚 经验分享:

  1. 2022 年中总结
  2. 2022 年终总结
  3. 2023 年中总结
  4. 校招日志与经验总结

校招时间线:

  • 7-8 月:提前批
  • 9-10 月:秋招正式批
  • 11-12 月:秋招补录
  • 3-4 月:春招

实用文档

📚 求职指南:

  1. Offer、三方、两方协议、违约 ⭐ - 法律知识
  2. 知识大纲 - 知识体系

📅 面试准备时间规划

3 个月准备计划

第 1 个月:基础巩固

Week 1-2: JavaScript 基础

  • 每天复习 1-2 个核心概念
  • 完成高频手撕代码
  • 刷 20 道简单算法题

Week 3-4: 框架基础

  • Vue/React 核心原理
  • 手写简易响应式系统
  • 刷 20 道中等算法题

第 2 个月:专项突破

Week 5-6: 计算机网络 + 浏览器

  • HTTP/HTTPS 协议
  • 浏览器渲染流程
  • 性能优化
  • 刷 30 道中等算法题

Week 7-8: 工程化 + Node.js

  • Webpack/Vite 原理
  • Node.js 事件循环
  • 刷 30 道算法题(含部分困难题)

第 3 个月:冲刺阶段

Week 9-10: 项目准备 + 算法强化

  • 准备 2-3 个项目经验
  • 每个项目准备技术亮点
  • 每天刷 5 道算法题
  • 模拟面试

Week 11-12: 综合复习 + 模拟面试

  • 过一遍所有知识点
  • 刷公司高频题
  • 每周 2-3 次模拟面试
  • 准备自我介绍和常见问题

1 个月速成计划(已有基础)

Week 1: 高频知识点 + 高频算法题

  • JavaScript 高频手撕
  • Vue/React 核心原理
  • 刷 50 道高频算法题

Week 2: 专项突破

  • 计算机网络高频考点
  • 浏览器原理
  • 刷公司 CodeTop 题库

Week 3: 项目准备 + 综合复习

  • 准备项目经验
  • 过一遍面试题库
  • 每天模拟面试

Week 4: 冲刺阶段

  • 查漏补缺
  • 刷错题
  • 调整心态

✅ 面试准备检查清单

技术准备 ✓

  • 完成 JavaScript 高频手撕代码
  • 理解框架核心原理(Vue/React)
  • 掌握计算机网络高频考点
  • 理解浏览器工作原理
  • 熟悉常见性能优化手段
  • 掌握 Node.js 事件循环

算法准备 ✓

  • 刷够 200 道 LeetCode(简单 50 + 中等 120 + 困难 30)
  • 掌握常见数据结构
  • 掌握常见算法模板
  • 刷完目标公司 CodeTop
  • 整理错题本

项目准备 ✓

  • 准备 2-3 个项目经验
  • 每个项目准备技术亮点
  • 准备性能优化案例
  • 准备技术难点攻克过程
  • 准备架构设计思路

软技能准备 ✓

  • 准备自我介绍(1 分钟版本)
  • 准备职业规划
  • 准备离职原因(社招)
  • 准备反问问题列表
  • 模拟面试 5 次以上

其他准备 ✓

  • 简历优化(突出项目和技术栈)
  • 整理作品集/GitHub
  • 了解公司和业务
  • 准备面试着装
  • 调整作息保证状态

💡 面试技巧

技术面试技巧

1. 回答问题的 STAR 法则

  • Situation: 背景
  • Task: 任务
  • Action: 行动
  • Result: 结果

2. 代码题解题步骤

  1. 理解题意: 确认输入输出,询问边界条件
  2. 举例说明: 用具体例子理解问题
  3. 思路讲解: 先说思路再写代码
  4. 编码实现: 边写边解释
  5. 测试验证: 用 test case 验证
  6. 优化讨论: 时间/空间复杂度分析

3. 不会的问题怎么办

  • 不要说”不会”,说”这个问题我之前没遇到过,但我的思路是…”
  • 展示思考过程比答案更重要
  • 可以请求提示或降低难度

4. 项目经验讲解技巧

  • 用 STAR 法则
  • 突出自己的贡献
  • 准备技术难点和解决方案
  • 准备性能优化数据
  • 准备架构设计思路

避免的雷区

❌ 千万不要:

  • 说前公司/项目的坏话
  • 说不了解就乱说
  • 抢面试官的话
  • 表现得不耐烦
  • 说谎或夸大经历
  • 对不会的问题直接说”不会”
  • 回答问题跑题

✅ 应该做:

  • 谦虚但自信
  • 展示学习能力
  • 积极思考问题
  • 主动沟通确认
  • 保持良好心态
  • 准备反问问题

📊 高频考点统计

JavaScript (出现频率 TOP 20)

考点频率难度
手写 Promise🔥🔥🔥🔥🔥⭐⭐⭐⭐
闭包与作用域🔥🔥🔥🔥🔥⭐⭐⭐
this 指向🔥🔥🔥🔥🔥⭐⭐⭐
原型链🔥🔥🔥🔥🔥⭐⭐⭐
事件循环🔥🔥🔥🔥🔥⭐⭐⭐⭐
手写深拷贝🔥🔥🔥🔥⭐⭐⭐
防抖节流🔥🔥🔥🔥⭐⭐
call/apply/bind🔥🔥🔥🔥⭐⭐⭐
继承方式🔥🔥🔥⭐⭐⭐
数组去重🔥🔥🔥⭐⭐
类型判断🔥🔥🔥⭐⭐
柯里化🔥🔥🔥⭐⭐⭐
async/await🔥🔥🔥⭐⭐⭐
ES6+ 新特性🔥🔥🔥⭐⭐
垃圾回收🔥🔥⭐⭐⭐

Vue (出现频率 TOP 10)

考点频率难度
响应式原理🔥🔥🔥🔥🔥⭐⭐⭐⭐
Diff 算法🔥🔥🔥🔥🔥⭐⭐⭐⭐
nextTick🔥🔥🔥🔥⭐⭐⭐
组件通信🔥🔥🔥🔥⭐⭐
生命周期🔥🔥🔥🔥⭐⭐
keep-alive🔥🔥🔥⭐⭐⭐
Computed vs Watch🔥🔥🔥⭐⭐
Vue Router🔥🔥🔥⭐⭐⭐
Vuex/Pinia🔥🔥🔥⭐⭐⭐
Vue3 vs Vue2🔥🔥⭐⭐

🔗 相关资源

学习路径

刷题平台

面试资源


💬 面试常见问题

自我介绍模板

您好,我是 XXX,有 X 年前端开发经验。主要技术栈是 Vue/React + TypeScript + Node.js。

在上一家公司,我负责 XXX 项目的前端架构设计和核心功能开发,主要技术亮点有:

  1. XXX(性能优化,提升 XX%)
  2. XXX(架构设计,支持 XX)
  3. XXX(技术难点攻克)

业余时间我喜欢研究新技术,在 GitHub 上有 XXX star 的开源项目,也会在技术社区分享文章。

这次应聘贵公司,是因为 XXX,希望能有机会加入团队。


反问问题列表

技术相关:

  • 团队目前的技术栈是什么?
  • 项目的技术架构是怎样的?
  • 团队的代码规范和 Code Review 流程?
  • 团队如何做技术分享和成长?

业务相关:

  • 这个岗位主要负责什么业务?
  • 团队目前面临的主要技术挑战是什么?
  • 团队规模和协作方式?

个人成长:

  • 公司对这个岗位的期望是什么?
  • 有哪些学习和晋升机会?
  • 入职后的主要工作内容?

🎯 总结

面试准备是一个系统工程,需要:

  1. 扎实的基础: 不要忽视基础知识
  2. 算法能力: 每天坚持刷题
  3. 项目经验: 准备技术亮点
  4. 沟通能力: 清晰表达思路
  5. 良好心态: 不要过分紧张

记住: 面试是双向选择,展示真实的自己,找到合适的团队。


祝你面试顺利,拿到心仪 Offer!🎉
最后更新: 2026-01-26

维护与整理 · Yihui在 GitHub 上编辑

继续阅读

浏览全部文章

SQL与NoSQL有什么区别?MySQL和MongoDB如何选型?实际项目中如何选择?

日期:2026-09-27 标签:#面试 #MySQL #数据库 难度:简单 来源:牛面 MySQL 题库 答案说明:独立整理(站内题目标记为 VIP,未读取会员答案) 一句话答案 MySQL与MongoDB的主要差异在数据模型、事务边界、查询方式和模式演化;按业务访问模式和一致性需求选型。 面试口语版(约 60…

阅读全文