博主 3 月份在腾讯官网投递 Web 前端开发岗,一路从提前批走到正式批,战线长达3个月...真的不容易(菜是原罪),特此记录下征战鹅厂的面经,希望可以帮到大家。
提前批
一面
官网显示流程——初试
3.14(电话面 + 视频面)
- 自我介绍,怎么学前端的
- CSS 常见两列布局、三列布局
- CSS 水平垂直居中
- 闭包,JS 没有闭包的话会怎么样
- typeof 和 instanceof
- js 的原型链,继承
- js 的 bind、apply、call 有什么区别
- var、let、const的区别
- new 操作符原理(手动实现 new 给出思路)
- 箭头函数,箭头函数 this 问题,箭头函数是否可以被 new
- promise 知道吗,手写一个 promise 怎么写(说思路)
- promise.all 应用场景
- promise 和 async/await 的区别
- vue 的生命周期(我说我 React 比较熟)
- react 的生命周期(React16)
- react 性能优化
- react 的 diff 算法
- react 的 Fiber 架构
- 状态码 304(强缓存和协商缓存)
- 你有什么要问的吗?
面完加了面试官 qq,第二天qq远程视频,手写原生 DOM 拖拽和大数相加
一面大概 1 个小时左右,比较注重 JS 和 CSS 的基础能力。面试官人很温和,通过后立马打电话和我说,这种尘埃落定的感觉真好~
面试完官网状态从初试变成复试~
二面
3.20(电话面)
- 自我介绍,说说项目遇到的坑
- 看你项目 ES6 用的比较多,说说 ES6 的一些新特性
- 有没有考虑对图片处理的优化手段,说说常用的
- 图片懒加载怎么做
- 考虑过缓存方面的优化吗,强缓存和协商缓存区别
- 防抖和节流
- 实现无缝滑屏,你觉得怎么实现
- dns 查询原理
- tcp 握手和挥手
- tcp 和 udp 区别,udp 使用场景
- https 和 http 区别
- http2.0 相比 1.0 好在哪
- 抓包会吗,抓包原理,fiddler 用过吗
- 跨域
- csrf、xss,如何预防
- 项目的 webpack 配置
- plugin 和 loader 的区别
- 写过 webpack 的插件吗(没写过)
- webpack 单路口和多路口打包配置,为什么需要多路口
- babel 的编译原理,抽象语法树
- 你有什么要问的吗?
二面聊了很久,一个多小时,面试官非常厉害(应该是部门组长),整体处于被碾压的情况...然后面试官说可能会有三面,让我再准备下
感觉答得很一般,当时回去恶补了 webpack 以及性能优化的东西..
面试完官网状态依旧是复试..
三面
3.28(视频面)
- 自我介绍,为什么会选择学前端呢?
- 看你做了挺多项目,有没有在架构层面上考虑过对项目的优化
- MVC MVP MVVM 架构了解吗,他们的使用场景
- 怎么理解前后端分离思想
- 和后端一般是怎么沟通和联调的
- 网络安全
- 看你用过 nginx,聊聊 nginx 吧
- docker 也用过?(不是很熟还是别往简历上写给自己挖坑啦..)
- 后端技术栈了解哪些
- 有什么想问的吗?
三面大概半小时...面试官应该是部门技术总监,问的问题非常广,从大的架构层面往小的技术方面问,由广度到深度
整体气氛比较深沉...和巨佬聊技术有点格格不入T_T,巨佬说会考核下,然后让我等电话..
后来..后来..官网流程就灰了...电话呢?! 提前批——挂。
但好在比较幸运是,在面腾讯之前拿到爱奇艺的实习机会~ 所以也不至于无路可走T_T
在等正式批的这段时间里,白天在公司上班,晚上恶补基础,在恶补的过程中,才发现自己之前面试答得简直一坨shi ...很多需要深挖的知识点,渐渐感觉时间不太够用(..•˘_˘•..)
正式批
26号突然收到面试邮件,约了 28 号晚上 7 点的面试..
赶紧到官网查看流程,灰了一个多月,终于亮起来了!! 感动!!
一面
官网面试流程——初试
4.28(电话面)
- 自我介绍,在校情况
- 圣杯布局、双飞翼布局
- CSS 媒体查询
- CSS 动画、CSS 对网页性能优化
- 浏览器渲染原理、回流与重绘
- JS 单线程、EventLoop、宏队列、微队列
- Go 语言知道吗? 为什么 Go 效率比较高? (只是了解,效率高大概是因为多线程?)
- Ajax 和 Fetch
- 怎么同时让多个异步请求并行?
- 跨域问题
- xss 和 csrf (聊到跨域基本都会聊跨域安全问题,所以这两个知识点可以一起准备)
- session 和 cookie
- 服务器怎么知道 session 过期?
- 怎么设置 cookie 过期时间
- sessionStorage 和 localStorage
- 强缓存和协商缓存
- ES6 数组新增方法
- ES6 箭头函数和普通函数区别
- promise、generator、async/await
- react 父子组件传参
- PureComponent 知道吗
- React 性能优化
- Redux 原理,Redux 源码看过吗? Redux 中间件呢?
正式批一面了大概1个半小时... 全程没喝一口水... 自我感觉答得还行,面试官也说还不错hh
但是...但是...第二天看官网居然灰了????
当时心里拔凉拔凉的,晚上没吃饭没洗澡躺尸,亏我准备这么久
但是过了两天,突然又接到电话,是正式批一面面试官打来的..........
他说他的部门(IEG)HC不够了..把我调剂到另外的部门(PCG)去了...然后要重新启动流程,所以把我灰了..让我赶紧准备另一个部门的面试
所以又开始了艰难的——走流程..
不得不吐槽鹅厂流程太长了!! 也有可能是自己太菜...排名比较靠后
正式批补录
一面
官网面试流程回到初试..
5.07(电话面)
- 自我介绍,看你简历,以前是写Java的?
- 那你觉得 java 里的继承和 JS 里的继承有什么区别
- JS 垃圾回收
- JS EventLoop
- ES6 新特性
- 知道装饰器吗
- 数组方法 map、filter、reduce
- 新数据结构 Set、Map
- babel 的编译原理
- webpack 工作流程和原理,怎么写一个插件
- JS 基础还行,问问网络相关知识?(好..)
- 从 url 到页面渲染过程
- 你刚说到 DNS 解析 能详细说说嘛? DNS 递归和迭代的区别呢?
- TCP ? UDP ? 区别是什么,你说 TCP 头部很大,具体有哪些报文信息呢?
- 页面渲染 重绘与重排 页面加载如何优化
- http1.1 / http2.0 / https
- 聊聊数据结构的东西吧 算法怎么样?(一般..)
- 栈、队列、树、图一些基础
- 最短路径算法能简单聊聊实现吗 (迪杰斯特拉算法)
- 树的深度优先遍历、广度优先遍历实现和区别
- 一棵二叉树要用数组存储,这棵树要具备哪种条件? (完全二叉树)
- 实现括号匹配用数据结构怎么做?说说思路 (栈)
- 快速排序原理
- 有什么想问我的? (实习在什么事业部,具体做什么?手Q,做手Q新业务)
一面大概1个多小时,面试官比较严肃,也很厉害... 问的问题拓展性很强。
而且非常注重基础, 数据结构、计算机网络...很重要!
虽然感觉答得一般,但面试官评价还行...运气真好
二面
5.13(电话面)
- 自我介绍,说说你学前端的历程吧
- 说说项目中遇到的坑,怎么解决的
- 项目中有考虑到哪些优化的地方?
- 小程序的富文本为什么选用 wxParse,富文本原理
- 图片有哪些格式,知道 WebP 格式的图片吗,图片的一些优化手段
- 图片懒加载原理
- 跨域
- 前端常见攻击方式
- 状态码
- 强缓存和协商缓存
- Node 的优势
- Express 和 Koa 区别
- react 路由原理
- react hooks
- redux 异步中间件实现原理
- Vue MVVM原理
- 服务端渲染原理
- nginx 的配置,反向代理、负载均衡原理
- 知道 PWA 吗
- hybrid 技术
- Flutter 了解吗
- 看过源码吗?
- 有什么想问的?
二面聊了一个多小时,面试体验很棒!面试官人超好,不断的引导我回答出答案...
最后还说帮我约三面的面试官,给人感觉很暖!
后来看官网状态从初试变成复试~
三面
5.22(视频面)
- 自我介绍,说说项目踩坑
- 使用框架踩到坑时,有没有去看过源码?
- 在做项目时,有没有从架构层面考虑过?
- 我现在有个需求,需要实现一个 web 端的微信,你想想该怎么实现
- 怎么看待前后端分离思想,以及服务端渲染技术
- 写过脚手架吗?
- 了解过设计模式吗?
- 后端的技术栈有了解吗?
- 平时是怎么学习的,学习习惯,为什么学前端?
- 你有什么想问的?
三面聊了半个小时,面试官是部门技术总监,看上去很和蔼...一直在安静听我说
面试感觉就像在一起聊天,也没有提前批的那种沉重感...大概是被虐多了,习以为常~
面试完官网状态秒变成 HR 面试!!
HR面
5.27 (电话面)
- 自我介绍
- 家庭情况
- 平时是怎么学习的
- 说一个你做的最好的项目~
- 怎么看待现在的互联网趋势 (我说5G可能是第四次工业革命的导火索...)
- 如果要来深圳的话,方便吗
- 你有什么想问的吗?
HR 是一个小哥哥,人很好,声音很好听,面试了10分钟左右
最后还说会帮忙催 offer,真的很感谢他!
OC
6.11 (拿到offer)
oc真的等的很着急...好在终于拿到了 offer!!
我的经验
- 实习并不难,实习不是社招,比起社招难度小得多!基础很重要,面试官基本是看你的基础能力和你的发展潜力。
- 简历很重要,一个好的简历可以让面试官快速了解你,当然记住不要给自己挖坑。
- 沟通很重要,不会就说不会,毕竟不可能啥都会,实事求是。然后尽量引导面试官向你会的问题上问,多准备点亮点,例如框架源码,新技术等..
- 电话面试时,可以录音,回过头听听面试官的问题,慢慢积累面经。
博主期间也面试了阿里、京东、头条... 以后有时间再总结下面经给大家分享
最后祝大家都能顺利拿下心仪 offer! 我的 github 面经