大家好,我是蔓越莓曲奇,目前工作经验为 1.5 年,之前在一家不知名小厂工作,在 2024 年的 3 月跳出来寻求新的工作,经过两个月(准确来说只有一个月)的奋战,也算是结束了这一段时间的求职,然后把最近的面试过程分享给大家(面经是靠回忆写的,记录的不是太完整,见谅)
跳槽无非三点
- 钱💰
- 大厂 / 履历
- 工作内容
理想的下一份工作应该满足上述三点,但在行情不好的今天,已经不敢奢求太多
总体来说,以我个人的视角来看,前端 1.5 年仍会考察基础八股,但是所占范围不大,面试官更加期望从你的项目经历上以及技术难度考察你对业务以及专业知识的理解
拼多多(社交方向)
一面
- 使用设计模式优化这段代码 https://segmentfault.com/q/1010000044702002
function runTask() {
if(条件A){
cbA()
if(条件B){
cbB()
}
}
if(条件C){
cbC()
if(条件D){
cbD()
}
}
}
- 使用 Vue 或者 React 封装一个组件,传入一个 img 的 src,该组件会在图片加载失败时进行重试加载 2 次
- 封装一个工具函数,传入 DOM 的 id,返回该 DOM 节点
- 说一说前端性能优化的方案
- Vue 代码或者 React 代码到页面渲染的过程发生了什么
二面
- 手写深拷贝
- 手写实现一个倒计时组件
- 业务中会出现一些灰产利用 hack 修改系统时间,进而影响到倒计时组件,前端应该如何解决这个问题
- 假如 UI 给你一个朝向 ↖️ 的静态资源图片,如何通过 CSS 让这个图片朝向 ↗️,(这个不会,面试官说有一个 CSS 属性 scale 变成 -1 就可以做到,回去 google 了一下,transform 到 3d 也可以)
- 移动端写组件如何避开 iphone 的刘海(没了解过😓,面试官说 iphone 有专门的接口可以配置)
- 动画性能优化手段(社交方向做动画比较多一点,这方面会考察)
- 移动端适配方案
三面
- 手写一个节流函数
- 你做过比较有困难的事,你是如何解决的
面试结果:HR 面通过,但是一直在泡池子,可能优先级不是很高吧,可惜,这个应该是我当时期望的 dream job,个人对拼多多的面试体验感觉也挺好的,但是跟他们内部的人聊起来感觉拼多多更像个围城,里面的人想出来,外面的想进去,奈何自己进不去
蚂蚁(保险业务)
一面
- 说项目
- 手写 Koa2 中间件的模型
- 手写节流
- 微前端原理
面试结果:一面挂,个人觉得向面试官展示的业务思考度不够,技术方向也不是特别匹配,手写题实现的也是最简单的版本,总体就是亮点不够
萤石网络(电商方向)
面试结果:一面挂,当时感觉海康并不是很想招人,面试内容也是普通的八股,具体记得不太清了,电话面
京东(京东物流)
一面
- Vue2 升级 Vue3 如何做的
- Eslint 的一些规则
- 如何设计接口的重试机制
- 实现一个函数,函数内部发起一个网络请求,如果 5s 内没有返回,就返回 null ,否则返回 data
- 说下深拷贝浅拷贝
面试结果:一面挂,有些地方回答的不太好
宽德投资
一面
- 前端哪些技术工具中运用了工厂设计模式
- Webpack 的性能优化手段
- 你还有什么想展示给我的
二面
- 如何设计一个灰度发布方案
- 聊项目
面试结果:二面通过,HC 没了,这里应该忘了一些面试问题,但都是些寻常的八股
腾讯云智(音视频)
一面
- 如何设计一个监控系统,从上报到日志实现
- 说一下 wasm
- 捕获上报的方式,onerror,unhandledrejection,try catch
- 手写题,封装一个函数,接受一个参数,即秒数,返回分针与时针的角度
- CSRF 攻击
二面
- 服务端渲染原理
- 说一下请求发送到服务端,服务器做了什么
- React 跟 Vue 底层区别,对开发者来说区别
- XSS 攻击
面试结果:口头 OC,第一次体验到了压力面
影刀
一面
- Vue 的 ref 跟 reactive 区别
- XSS 攻击
- HTTP 缓存
- HTTP 1.1 跟 HTTP 2.0
- HTTP 状态码
二面
- Vue 静态节点优化
- Webpack 优化手段
- Vue computed 跟 watch
面试结果:二面挂,糟糕的面试体验
虾皮(Video Teach)
一面
- 手写实现字符串千分位函数
- 聊项目
面试结果:一面挂,个人状态不是很好😭,问了面试官一些比较愚蠢的问题
百度(基础架构组)
一面
二面
- 聊项目
面试结果:HC 被内部活水
滴滴(汽车资产管理)
一面
- 聊项目
- 实现 TypeScript 的 Await
- 手写 compose
- 用 Vue 或者 React 实现一个组件,组件通过 checkbox 控制列表传入数据每一列的全选反选
二面
- 项目问题以及实现细节
- 小程序或者 H5 页面,点击一个按钮后,页面卡顿掉帧,没有响应,分析下原因
- Vue、React 的不同
- Vue、React 框架层面的性能优化手段
- 低代码项目的原理
三面
- 你最近学的知识,然后这个知识是如何落地到业务或者项目之中的
- 写一个你在项目中使用的算法
- 为什么离职
- 项目中你个人觉得最出色的地方
面试结果:口头 OC
日志易
一面
- React 与 Vue 的使用感受,讲讲优点缺点
- 手写题 字符串转 IP 地址
- 考察输出
- CSS 选择器优先级
- CSS id + clss 组合选择器与 class + id 选择器哪一种查询效率比较高
- Vue use 是否在用,Vue 跟 React hook
二面
- javascript 的组合寄生继承
- javascript 的原型链
- 手写寻找文档中一个 DOM 的一个节点
面试结果:二面挂
懂车帝
一面
- 手写题,原本是考察我封装一个函数,每次返回下一个质数,我没 get 到题目意思,就换成了手写一个 curry
- 后台管理登陆的 token 如何获取,如何存储
- Vue2 与 Vue3 的区别,尽可能多的讲
- axios 封装方案
- G6 跟 D3 的如何选型
- 性能优化手段
- HTTP 缓存
- computed 与 watch 源码
二面
- 算法题https://leetcode.cn/problems/longest-substring-without-repeating-characters/description/,好久没刷了,没写出来
- 如何设计一个监控上报系统
- 有没有做过后台文件上传(不阻塞用户等待)的业务 case
面试结果:二面挂,算法其实思路对的,但是挂了,可能展现的亮点不够
总结
2024 的行情总体并不是太好,大厂背书、 92 学历和项目经验匹配度都会成为你能否拿到 offer 的影响因素,大厂经历跟学历其实对大部分前端同学都是不可修改的事实,我们候选人能提升的方面只能通过项目以及匹配度做文章。
PS,原本今年想一周一更,甚至两天一更的,奈何太懒,感觉对前端缺乏了一些热情,目前在逐步恢复中,与君共勉吧