Joye Personal Blog

Back

背景#

作为一名墨尔本大学大二在读学生,我在 2025 年底针对 11月-3月 假期寻找上海地区的前端实习机会(React 技术栈)。经过约一周的密集面试,最终收获约 10 offer。经过一周左右的密集面试,最终拿到约 10 个 offer。本文结合我的亲身经历,总结了国内小厂前端实习面试的主要技术考点与准备方法,并分享一些在高频面试阶段保持状态与提升表现的实用心得。

投递数据分析#

基础数据#

  • 沟通职位数: 210(包含主动投递和 HR 联系, 仅主要投递的一周)
  • 简历交换数: 51
  • 面试转化率: 约15%
  • Offer 数: 10~
  • 主要渠道: BOSS直聘

数据洞察#

从转化率来看,小厂前端实习的简历筛选相对宽松,约 1/6 的沟通能进入技术面试环节, 最终的offer率达到了70%,说明只要面试表现优秀很大概率能获得offer。

面试技术考点分析#

基于我参与的所有技术面试(小厂多为一面,少量二面/Leader 面),可以确定小厂更关注基础与框架实际使用。下面仅保留“会被问到什么”的关键点,具体“如何准备”放在后文,避免重复。

React(高频)#

  • Hooks:常见 Hooks 及场景,useEffect 依赖与闭包/渲染陷阱
  • 组件通信与状态:父子(props)、跨层(Context)、全局(轻量状态库,如 Zustand/Redux 基础)
  • 性能优化:重新渲染控制、memo/useMemo/useCallback、虚拟列表示意
  • 新特性:React 18/19 对并发、表单、服务端能力的影响

JavaScript(高频)#

  • ES6+:解构/扩展、模块化、箭头函数与普通函数的区别(thisarguments、不可作为构造函数)、var vs let/const(作用域、变量提升、暂时性死区)
  • 异步:Promise 链、async/await、错误边界与统一处理
  • 手写题:防抖/节流、数组去重、(思路级)深拷贝

TypeScript(中频)#

  • 常见类型、interface vs type、基础泛型、常用工具类型

构建与框架(中频)#

  • Next.js:为何选择、SSR/SSG 场景与 SEO 差异
  • 构建工具:Vite vs Webpack 的工作方式与性能差异

CSS 布局(高频)#

  • 响应式布局类型:
    • 媒体查询(Media Queries):断点驱动;优点是控制精细,缺点是断点维护成本;适用于多设备断点明确的 B2C 页面
    • 流式布局(Fluid/百分比 + max/min):随容器自然收缩;优点是实现简单,缺点是元素在极端宽度下可能失衡;适用于信息型内容页
    • 弹性布局(Flex):主轴/交叉轴分配;优点是一维布局强,缺点是二维排布受限;适用于组件级与线性排列
    • 网格布局(CSS Grid):二维网格;优点是布局表达力强,缺点是学习曲线较高;适用于复杂面板/看板
    • 现代响应(Clamp/Container Query):按容器/字体尺寸自适应;优点是更贴近组件化,缺点是兼容性需确认;适用于设计系统与组件库
    • 结合策略:Mobile-first、内容驱动断点
  • 经典三栏(圣杯/双飞翼)原理与差异、Flex/Grid 实现取舍

网络与浏览器(低频)#

  • HTTP 状态码与重定向机制
  • 跨域(CORS/代理)与 DevTools Network 定位思路

Git(低频)#

  • 分支策略、git rebasegit fetch

其他(特定岗位)#

  • 部署:常见前端部署流程与基本排错
  • AI/LLM(专项):RAG、长上下文质量保证、API 返回结构
  • 表单:向表单库注入/回填数据的方式

技术准备重点#

基于上面的“会被问到什么”,这里给出“如何高效准备”的动作清单,尽量避免重复描述:

核心技术栈(80% 精力)#

  • React 生态:
    • 过一遍常用 Hooks 并用小 demo 实操;掌握 useEffect 依赖与陷阱
    • 熟悉 props/Context 与一种轻量状态库(建议 Zustand)
    • 做一次性能专项:定位重复渲染,使用 memo/useMemo/useCallback,实现一个简版虚拟列表
  • CSS 布局:Flex 与媒体查询做一次响应式页面
  • JavaScript 基础:
    • 巩固 ES6+(模块化、解构/扩展、this 行为)
    • 异步三件套:Promise 链、async/await、错误处理模式
    • 手写三题:防抖、节流、数组去重(可选:深拷贝思路)

辅助知识(20% 精力)#

  • TypeScript:基础类型、interface vs type、一个泛型示例、常用工具类型
  • 计算机网络(抓基础即可):
    • TCP/IP 四层模型;输入 URL 到页面的过程
    • 常见状态码;TCP 三次握手/四次挥手;TCP vs UDP;跨域(CORS/代理)
    • 推荐:小林 coding - 图解网络(图解多,便于理解与记忆)
  • 构建工具/Git:理解 Vite vs Webpack 的差异;日常分支管理与 rebase 基本操作

简历准备建议#

工具选择#

推荐使用 Reactive Resume

  • 开源免费,支持数据导出
  • 模板专业,排版清晰
  • 支持 Markdown 和自定义样式

内容原则#

技能部分

  • 按熟练度分级(熟练、掌握、了解)
  • 只写用过的技术,不写只看过文档的
  • 突出与岗位匹配的技能

项目部分

  • 2–3 个代表性项目即可,突出你熟悉的技术栈(React / Next.js / TypeScript 等)。
  • 描述方式建议采用简明结构:
    • 项目简介:一句话说明功能与定位(如「一个支持 AI 模拟面试的语音交互平台」)。
    • 技术亮点:聚焦你亲手完成的功能或解决的问题(如“实现登录注册逻辑与数据库对接”、“封装通用表单组件”)。
    • 学习收获:可以写成「掌握了 SSR 渲染流程」「理解了 Zustand 状态管理原理」等。
    • 真实 > 华丽:不用刻意量化性能指标,重点放在你掌握了哪些关键技术、解决了哪些问题。
  • 能上线尽量上线:即使是部署到 Vercel / Netlify,也能展示完整度和动手能力。
  • 技术栈一致性:项目里写到的框架、库要与简历技能部分对应,保持前后统一

重要原则

简历上的每一项技术和项目细节,都必须能够深入解释。面试官会基于简历提问,写了不熟悉的内容很容易暴露。

面试策略#

技术面试#

  1. 基础优先: 小厂面试重基础轻项目,扎实的 JavaScript 和 React 基础比复杂项目更重要
  2. 结构化表达: 回答问题时先给结论,再展开细节
  3. 诚实应对: 不会的问题可以说”这个我了解不深,但我的理解是…”,好过胡乱回答
  4. 把握反问:不要浪费任何一次反问环节,可以提问实习具体内容,组内人员产品等,或者询问面试中需要改进的地方

沟通技巧#

  1. 在 BOSS 直聘保持活跃,及时回复消息
  2. 主动投递时简单介绍自己的匹配度
  3. 面试后发送感谢信,表达兴趣

复盘与练习#

  • 多面不怯场:尽量在短时间内密集安排面试,快速进入状态
  • 录音复盘(仅自用):回放问题与回答,标记“答得好/一般/待改进”,针对性补齐
  • 清单化改进:把高频题与易错点整理为小卡片,间隔重复练习
  • 项目尽量上线:把线上地址放在简历和个人主页,HR 与面试官会实际访问,显著加分

总结#

国内小厂前端实习的技术门槛相对明确:扎实的 JavaScript 基础 + React 熟练使用 + 合理的简历包装。相比大厂,小厂更注重”能否快速上手干活”,而不是算法和系统设计能力。

从投入产出比来看,建议将 80% 的时间用于准备 React 和 JavaScript 基础八股文,20% 的时间用于简历优化和项目准备。

希望这篇总结对正在找实习的同学有所帮助。


参考资源:

国内小厂前端实习面试总结与技术准备指南
https://astro-pure.js.org/blog/20251023---internshipexperience/post
Author Joye
Published at 2025年10月23日
Comment seems to stuck. Try to refresh?✨