作为一个非科班前端,一直有一个「大厂梦」,不过现公司呆着也算舒服,始终没想着走出舒适区。最近因为某些原因,萌生了面试大厂试水的想法,于是说投就投,开始了为期一个月的面试之旅。
个人情况是 17 年某管理专业毕业,现于一家中厂打杂。简历是通过 BOSS 直聘投递给非 HR 的 BOSS,由于投的都是异地的岗位,面试形式主要是电话(视频)面试 + 在线笔试。
这次面的公司主要是几家大厂(蚂蚁、腾讯、京东)和一些中小厂(丁香园、平安科技、明源云等),出乎意料的是大厂技术面全过了,中小厂几乎全挂了,大多挂在了一、二面。接下来就分享一下相关技术面的问题,hr 面的问题都大同小异就不再赘述。
腾讯
一面(一个小时)
- 聊聊职业规划,聊聊 devOps,对以后的工作内容有什么要求
- 用过哪些单元测试框架?为什么选择 jest
- 用过哪些 e2e 测试框架,cypress 与 nightWatch 的区别,聊聊 selenium 和 webdirver
- 有没有写过一些开发提效工具
- 为什么要离职
二面(半个小时)
- 引入 css 有哪些方式,
@import与<link href="">有什么区别 - Webpack 打包过程
- HTTPS 的握手流程,说说对称加密与非对称加密
- HTTP/2 与 HTTP/1.x 有哪些区别,HTTP/2 还存在线头阻塞吗
- 输入 URL 到页面展现的过程,白屏优化有哪些方法
- 跨域的方案,jsonp 的原理
- Vue 与 React 区别
- Vue 双向绑定原理
- React diff 的原理
- cookie 与 session 的区别
- xss 是什么以及如何防范
- 算法:字符串加法
补充二面(一个小时)
由于二面没过,半个月后又收到了一次「二面」电话。
- 什么是 mvvm
- Vue 有哪些常用指令?
v-show与v-if有什么区别 - 了解哪些前端性能优化的方法
- 前端有哪些安全性问题?xss 与 csrf 如何攻击以及如何防范
- tcp 四次挥手,为什么需要四次?为什么最后一次挥手需要等 2MSL
- Vue 双向绑定原理
- 如何实现一个 Vue
- 如何设计一个通用组件
- 如何设计一个 e2e 测试框架
- 如何评价当前前端的生态
- 为什么要离职
- 怎么看待加班
- 算法:查找链表的中间节点,快排和冒泡的思路和复杂度
蚂蚁
一面(一个小时)
- 用
setTimeout实现setInterval - 实现 Promise 的「防抖」
- 算法:反转从位置 m 到 n 的链表,要求复杂度 O(N)
二面(一个半小时)
- 聊聊项目,裁剪的有哪些常见的交互方案?它们在 PC 端与移动端上的实现有什么差异,说说 marching squares 算法
- 用过哪些打包工具?rollup 与 webpack、 parcel 有什么不同?webpack 中 loader 与 plugin 有哪些区别?有写过 rollup 的插件吗?了解 rollup 的插件实现原理吗
- webassembly 是不是比 js 快,为什么
- 平时写测试吗?有哪些心得
- 对以后的工作内容有什么要求
- 为什么要离职
- 对加班怎么看
三面(十分钟)
- 为什么要离职
- 如何学习前端
- 聊聊职业规划
京东
一面(半个小时)
- typescript 中的泛型与其用途,
type与interface的异同,any与unknown的异同 - HTTP 有哪些常见的状态码
mousedown和click的区别mouseenter和mouseover的区别flex常见属性- 聊聊 HTTP 缓存
- 跨页面通讯方案有哪些
- 域名劫持如何防范
二面(一个小时)
- 聊聊项目,如何实现图像描边,为什么选择使用 react-pixi
- 如何设计一个图片编辑器
- 矩阵计算的顺序及其影响
- 包围盒计算与碰撞检测方案
- 编辑器使用 Canvas 与 DOM 进行渲染的优劣
- 说说 OffscreenCanvas 的应用
- 如何实现 photoshop 中参考线吸附的效果
三面(二十分钟)
- 为什么要离职
- 谈谈职业规划
- 有哪些业余爱好
其他
其他公司的题主要考察的是基础知识,题目包括但不限于以下内容:
- JS 中的数据类型
- 原型与原型链
- 作用域与作用域链
- 为什么
typeof null是object - 变量提升与 TDZ
this指向- EventLoop 流程
null和undefined的区别- 箭头函数与普通函数的区别
- Webpack 打包流程
- Webpack 持久化
- Vue 中
computed和watch区别 - Vue 的生命周期
- Vue 的组件通信方式,为什么需要 Vuex?为什么不建议直接更改 Vuex 中 store 的值
- 了解哪些设计模式
- CSS 中
position的值有哪些,各有什么用处
总结
关于面试准备,因为起初抱着试一试的心态,也没想着能拿到 offer,所以也没有准备太多,匆匆忙忙刷了一遍 木易杨大佬的面试题 就硬着头皮上了。不过面试后都有及时复盘和查缺补漏。还有一点是,面试心态一定要放好(腾讯二面挂了颓废了好几天)。
说说面试结果,最终收到了腾讯和蚂蚁的 offer,京东挂在了 hr 面上。本来投简历就只是想着试试水,没想到还真就单车变摩托了。不过能有这个结果,运气成分占了大多数(也许是因为每次面试前都会认真洗手?),一是面试题感觉比起其他大厂面经来说简单了很多,二是面试题跟自己的知识面比较符合,比如 CSS 中令人比较苦手的问题并没有被问到(BFC、水平垂直居中之类偏记忆性的知识点)。结论:爱洗手的男孩更容易进大厂。