2023-05-06 17:24:46
该面经详细记录了双非二本、两年中厂+两个月小厂经验的前端开发者在9~10月面试阿里、头条、PDD、快手等大厂的全过程,涵盖面试流程、技术考察重点、编码题类型及面试经验总结,为前端求职者提供了从基础到进阶的完整备考框架。
面试流程与结果概览初期面试阿里A部门、字节A部门、滴滴、抖音、蚂蚁等大厂均在一面或二面挂掉,主要因缺乏大厂面试经验。
后续通过调整策略,陆续拿到字节B部门、快手、陌陌、阿里B部门、PDD、电信等offer。
最终选择阿里天猫,认为公司发展方向更符合个人职业规划。
基础前端八股文(必考):
JS核心:原型链(理解为链表结构,this指向当前原型)、继承实现、数据类型、var/const/let对比、new过程、this指向、bind/call/apply实现(如改变链表next指向)、闭包、事件循环(Chrome新版优化await执行速度)。
垃圾回收:需掌握新生代(Scavenge GC算法)和老生代机制。
渲染过程:除TCP基础外,需了解解析算法、容错机制、图层树建立。
Node与浏览器差异:如新老版本执行顺序不一致。
Vue技术栈(分厂考察):
小厂:侧重API使用,需熟读Vue、Vuex、Vue-Router文档,结合项目经验回答。典型问题包括生命周期应用场景、keep-alive属性、组件通信方式、hash/history区别、v-for唯一key、依赖收集机制、v-show/v-if选择、watch/computed区别、Vuex模块拆分。
中厂:考察深度与工程化,如父子组件渲染顺序、keep-alive精准缓存、EventBus原理、Vue Diff算法、Proxy与Vue 2.0区别、data为何是函数、常用API原理(如nextTick)。
大厂:结合场景与工程,如组件封装、动态拖拽基线显示(队列解决)、图片/视频断点续传、Webpack原理(手写简单版本)。
编码题(分厂难度):
小厂:数组去重、CSS水平垂直居中。
中厂:call/apply/bind实现、节流防抖、Class实现。
大厂:
头条:算法题(LeetCode easy~middle难度,如二叉树路径、版本号排序)、Promise异常处理、promisify实现、观察者模式。
快手:动态拖拽场景题、手写Webpack相关问题。
PDD:棘手算法题(如二叉树最短路径)。
头条/PDD/快手:
头条:3轮面试,一二面抽题库(含this、EventLoop、Promise),三面广度题(如二叉树算法),算法题通过即过。
快手:2轮面试,首轮基础+场景+工程+编码,次轮深度+场景,唯一查看GitHub的公司,需准备项目细节。
PDD:2轮面试,二面出棘手算法题(如10分钟内完成二叉树题目)。
策略:算法题需刷剑指Offer+200道easy+50道middle,工程题需手写Webpack理解流程。
阿里:
难度最高:社招P6起,电话面3~4轮,深入业务挖掘。
一面:业务技术细节、困难点、技术推进业务案例、基础问题(如HTTP协议)。
二面:工程化切入(如SSR与Webpack原理)。
三面:行业理解。
策略:需理清业务流、技术服务于谁,避免头两次面试因业务理解不足挂掉。
基础题:
必问问题需提前组织语言(如Webpack打包流程、闭包、箭头函数),避免表述不清。
答出亮点(如结合项目实际使用场景)。
项目题:
常见问题:项目中最大困难、临时需求处理、产品方案错误时的技术推进。
策略:提前准备案例,与面试官求同存异。
编码题:
说出思路比直接写代码更重要,避免“一次写对或直接不会”的极端情况。
面试态度:
自信回答,避免畏手畏脚。
面试官问得长说明有疑问,问得短可能挂掉(如米哈游、头条按题库打分)。
反问技巧:
技术追求高:问公司对某问题的解决方案。
关注氛围:问技术分享频率。
了解团队:问项目Vue/React区分依据。
关注业务:问公司盈利模式与前景。
资料推荐: