前两天有位朋友刚面完莉莉丝的前端一面,回来跟我复盘了大半个晚上。我边听边记,越记越觉得这场面试的题目设计挺有代表性的——它不是那种"背完八股文就能过"的套路场,而是把前端八股文里最核心的几个考点,全都换了个角度来问。这篇文章就围绕这场一面,把涉及到的考察方向、每道题背后的真实意图、以及现场应该怎么组织答案,完整拆一遍。适合正在准备2026前端面试的同学,尤其是目标在中大型公司、游戏行业前端岗位的,值得仔细看。废话不多说,直接进入正题。
1. 一面整体节奏:莉莉丝把一场面试拆成了四段
先说这场一面的整体观感。全程大概50分钟,节奏比较紧凑,没有太多寒暄,面试官进门简单确认了身份之后就直接进入正题。整体的时间分配大概是:自我介绍加项目深挖用了15分钟,基础八股轮用了20分钟,手写题用了10分钟,最后反问环节留了5分钟。
这个分配比例其实很值得玩味。很多同学以为一面就是纯背题,但实际上莉莉丝这场一面里,项目深挖的占比一点都不低。面试官在自我介绍阶段就开始在简历上画标记,等你讲完一个项目,他会直接针对某个实现细节往下追。也就是说,一面虽然以基础题为主,但不代表项目可以随便准备。
1.1 自我介绍环节,面试官其实在听什么
这是很多人第一个丢掉分数的环节。大部分候选人的自我介绍是把自己简历上的工作经历、项目名称、用到的技术栈复述一遍,讲完大概一两分钟,面试官点点头,然后自己也不知道这段介绍到底有没有价值。
实际上,自我介绍是整场面试里你唯一拥有完全掌控权的展示机会。莉莉丝这场一面,面试官在听自我介绍时,我判断他主要在做三件事:第一,快速确认你的技术栈和岗位匹配度;第二,从你的表达里提取最近一个项目的业务背景;第三,观察你的逻辑组织能力。
所以正确的自我介绍结构应该是:我是谁,当前做什么方向,最近做的一个核心项目是什么,我在里面的角色是什么,这个项目里最值得说的一件事是什么,最后收一个"我对前端基础有持续整理,尤其关注XXX方向"。不需要长,控制在两分钟以内,但每一句话都要有信息量。切忌把自我介绍变成"我熟练使用React、Vue"这种纯列举,因为面试官接下来一定会从这里面随便挑一个词往下追问。
1.2 项目深挖:一面也会追问到实现细节
很多人对一面有一个刻板印象,觉得只有二面三面才会深挖项目,一面就是走过场。莉莉丝这场一面直接打破了这种预期。
面试官问项目的方式不是"你给我讲讲这个项目",而是先让你讲一遍,然后立刻从你讲的某个点切进去。比如你提到"我用虚拟列表优化了长列表渲染",他大概率会追一句:"你那个虚拟列表的滚动容器是怎么处理动态高度的?"或者说"如果列表项高度不固定,你的方案还能用吗?"
这种追问方式其实暴露了一个核心逻辑:一面虽然考八股,但面试官真正想验证的是你有没有在实际场景里用过这些技术。八股文背得再熟,如果项目里完全没有对应的落地经验,问两句就会露馅。
我在给朋友复盘时给了他一个建议:准备项目深挖时,不要只准备"我做了什么",要为简历上的每一个技术点准备两个层面的答案。第一层是"这个方案是什么、解决了什么问题",第二层是"这个方案在什么条件下会失效、有什么替代方案"。莉莉丝这种一面级别的追问,通常不会超过这个深度。
1.3 基础八股轮:范围广,但频率分布有规律
到了基础题轮次,莉莉丝这场一面的考察范围基本可以划分为四块:JavaScript底层、浏览器与网络、框架原理(以React为主,也会看简历带Vue的情况)、手写代码。
从具体的考察频率来看,JavaScript这块最密集,闭包、事件循环、原型链几乎必考;浏览器与网络里HTTP缓存和跨域是高频;框架题里虚拟DOM和组件通信一定会有一道;最后手写题通常是一道防抖/节流或者深拷贝,配一道Promise输出顺序题。
这个分布其实和绝大多数中大型公司前端一面是一致的。莉莉丝并没有出偏题怪题,但它的问法会带一点游戏行业的特点,比如在问渲染性能时,可能会延伸到"如果页面上有大量动画元素,你的优化思路是什么"。这个问题如果只背"减少回流重绘"这种标准答案,就会显得单薄,后面我会具体展开。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. JavaScript底层题:闭包、事件循环、原型链,每个都不能只背定义
如果把前端八股文按考频排序,JavaScript底层绝对是榜首,这场一面也不例外。但莉莉丝的一面让我印象最深的一点是,它从来不直接问"什么是闭包"这种单句能答完的问题,而是把定义和应用场景、坑点、排查方法串在一起考。
2.1 闭包与内存泄漏:从"什么是闭包"到"哪里会泄漏"
闭包这道题,常见的标准答法是:"函数可以访问它定义时所在的词法作用域,即使外部函数执行完,内部函数仍然持有对外部变量的引用。"
这个答法没有错,但在一面里大概率只能拿到及格分。莉莉丝的面试官在听到这个回答后,立刻追问了一句:"闭包一定会造成内存泄漏吗?"
这里其实是个陷阱。如果你回答"是",说明你对内存泄漏的理解还停留在表面。正确的回答是:闭包本身不会必然导致内存泄漏,内存泄漏发生在"持有闭包引用的那个对象生命周期过长,并且不再需要这个闭包"的场景里。
举个例子,在React函数组件里,useEffect中注册了一个事件监听器,监听函数里引用了组件作用域的state,如果组件卸载时没有移除监听器,这个监听器就会一直持有对state的引用,导致组件占用的内存无法被回收。这本质上就是闭包引起的内存泄漏,但泄漏的根源不是闭包,而是"没有及时解除引用"。
我建议遇到这道题时,答案组织成三段:先给定义,再说一个闭包的实际应用场景(比如防抖函数、柯里化、模块化封装),最后主动提一句"闭包需要注意引用释放,通常在事件监听和定时器场景里容易踩坑"。这样就把一道概念题,变成了"概念+场景+经验"的综合回答,面试官会明显更有兴趣听下去。
2.2 事件循环:宏任务和微任务的输出顺序题
事件循环基本是每一场前端一面
