非科班前端的春招结束了
本人非科班本科,有字节半年的实习经历,转正未果,年后开始走春招,整了2个月的春招终于接近结束,发一波面经回馈社区。
更新:在5月得到面试字节的机会,梦回bytedance
23届太难了
春招情况
公司 | 面试情况 |
小米、理想、小红书 | 简历/测评后没消息 |
米哈游、京东、金山wps | 笔试后没消息 |
美的、阿里、DolphinDB | 一面挂 |
b站、元象、美团、广电运通 | 二面挂 |
cvte(线下综合面没去)、4399、同花顺、携程 | hr面后没消息 |
顺丰科技、拼多多、平安金服、销售易、途虎、快手 | offer |
面经
每轮面试大多首先针对项目进行扩展,还有一些公司记不得了。
b站 - 主站
一面(3/14)
- 项目
- 打包优化,webpack配置优化、tree-shake原理
- 首屏优化,了解过性能优化的哪些指标,性能如何分析和监控
- 图片资源怎么优化,预加载原理、懒加载原理、以及其他手段
- 项目工程化的问题,pnpm的原理
- IntersectionObserver 处理懒加载的好处
- 图片压缩怎么做
- 宏任务微任务,node 里头的setImmediate、Process.nexttick()
- React 虚拟dom的结构,如何diff
- 什么时候会 rerender
- React 是否绑定过原生事件
- React fiber、怎么恢复中断
- React 常用 hooks,怎么拿到 dom
- 深拷贝怎么做,怎么避免循环
- 数组的 es6 api,reverse自己怎么做
- setTimeout、serInterval 计时怎么不准确
- 前端安全
- cookie 的属性samesite,要让cookie跨域怎么做
二面(3/21)
- 项目用的 webpack 版本,Webpack4 和 webpack5 的区别
- 项目在 webpack 层面进行的优化
- 有了解其他打包工具吗?vite 和 webpack 的区别
- Vite:通过 module 加载为什么还需要编译
- React hooks,内部的数据结构是怎样的
- React hooks 遇到什么问题,怎么避免rerender
- 项目有没有遇到什么难点,怎么解决的
- 手写算法(处理输入花了太多时间。。。)
携程 - 酒旅
一面(3/15)
- 根据项目问
- React 和 vue 的区别
- React hooks
- Redux 了解么(不会)
- less 和 sass 的区别
- 小程序
- 自身的优势
- 有没有封装过一些工具
- webpack 打包原理
- 前端安全
- es6 常见的哪些
- 箭头函数和普通函数的区别
- 口撕 call
- 口撕 promise
- 口撕 promise.all
二面(3/20)
- 对了解的前端优化手段进行总结
三面 - 加面(3/29)
- 项目
- 场景题:主题/语言切换怎么实现
- monorepo 的好处
- Vite 为什么快
- Flutter、react native 了解吗
- hooks 组件和函数式组件的区别
- node 了解多少,做过什么
- 跨域,怎么解决
- Js 如何判断一个数组
hr + 英语测评(4/6)
途虎养车
一面(3/21)
- 手写找出字符串中出现最多的字符并统计字数
- 聊项目,工程化、做过的需求
- vue2 和 vue3 的区别
- vue2 的 difff原理
二面(3/28)
- 堆排序伪代码实现
- js事件循环
- css 定位的区别
- Ts type 和 interface 的区别
- webpack打包流程、生命周期
- 前端学习、规划
- 项目难点
- Hashmap / 哈希冲突如何解决 / 数组扩容
hr面(4/7)
oc(4/10)
顺丰
一面 (3/14)
- 项目
- 事件循环
- 闭包
- 原型链
- vue 和 react 的区别
- es6 的新特性
- Promise 的好处
二面(3/16)
- Vite 和 webpack 的区别
- 围绕项目问的:如何优化一个工程、如何迁移工程、monorepo的好处等。
hr(3/20)
oc(3/24)
拼多多
一面(3/1)
- 项目
- React 和 vue 的区别
- flex
- 浏览器渲染流程
- css 动画和 gpu 加速
- 事件循环,代码说输出
- 看this绑定的代码说输出
- 手写场景题(对一组图片进行加载,对超时抛出错误)
二面(3/8)
- 项目
- 异步加载、组件库按需加载、import()
- External 和 tree-shake
- webpack 常用的一些 loader 和 plugin
- 手写 settimeout 循环多次、要求能够停止
- 手写超时请求错误抛出
三面(3/10)
- 手写:在长度为100的数组中找0~99缺失的两个数字
- 项目
- 聊天:工作强度(11 11 6)怎么看 + 如何怎么学习的
hr(3/15)
offer letter(4/6)
美团 - 基础架构
一面(3/22)
- 项目,webpack external
- Js 数据类型 如何判断类型 typeof 一个函数
- 输入一个网址发生了什么
- 缓存:http缓存、本地缓存
- cookie 的属性
- 宏任务、微任务
- 16ms 内如果提前执行宏任务微任务会继续执行其他任务吗
- 手撕 最长无重复字串
二面(3/23)
- 项目、实习相关的(最大的挑战、上线流程等)
- 一个静态页面怎么部署(没实践过。。)
- Node 部署 PM2(不了解)
- let const var 的区别
- 事件循环机制 输出题
- React 和 vue 的区别
- 手写版本号列表比较
美团 - 酒旅
一面(4/7)
- tcp三次握手、四次挥手
- 为什么挥手三次不行
- 三次握手的意义在哪里(历史连接、同步序列号、防止资源浪费)
- Https 从http开始讲
- 服务端如何验证完整性
- DNS
- 操作系统分段式存储,不了解
- 进程和线程的区别
- 进程间如何通信
- 线程死锁,不了解
- 数据库事务,一次操作可不可以不通过事务完成,不了解
- 堆和栈有什么区别
- 设计模式的一些原则:solid、开闭原则(不了解)
- 单例模式(恶汉式、懒汉式),讲了一下我知道的单例咋实现的
- 手撕 判断环形链表
- 手撕 层序遍历
- 项目的难点和复杂度
二面(4/12)
- 项目介绍,代码规范等
- Lerna 用了什么
- pnpm的好处
- 职业规划
- Webpack 的 plugin 常见,怎么实现
- React 性能优化
- React setState底层原理,不了解
- vue2 和 vue3 的区别
- 了解什么设计模式
- 有没有了解 es 的最新语法 es11 es12
- 手撕 最长无重复字串
- 手撕 发布订阅模式
快手 - 商业化基建
一面(4/4)
- 项目,对 Webpack 进行了哪些优化 ,Monorepo 工程化相关的问题
- React hooks 手写(用 useEffect 实现 class 的生命周期钩子)
- 事件循环,看代码说输出
- js有哪些数据类型,手撕类型判断,要求能判断对象、数组、基本类型
- 手撕 isEqual(数组元素一致则相等,对象key、value一致则相等)
二面(4/10)
- 针对项目问(占了35min。。对实现的细节问了很久)
- 做题,实现addTask类,最大并发量5。
- 反问
三面(4/17)
- 项目,挑一个具体的需求来讲,并用伪代码重新复现(占了35min)
- 让我自我补充做过的需求
- 前端技术如何学习,以及介绍最近新学的技术(说了storybook),
- 反问
hr(4/18)
offer(4/19)
祝愿大家都能拿到满意的offer!!!
#春招面试复盘#