大家好,我是JJ,本人是一个工作了6年的小前端,距离上一次面试已经有2年多没面试了,所以面试前也有提前做了一段时间的准备,以下是我最半年面试的一些公司,大部分位于广州,希望文章能帮助到大家。
面试的公司分别是:斗鱼 、网易 、腾讯、阿里(UC)、晓教育、千聊、荔枝、汇量科技、wps、美的
面试顺序不分先后。
斗鱼
一面
斗鱼是我第一家面试的公司,一面是视频面试,有2个面试官,一个是面试官负责面试前端部分的,一个是部门leader,面试综合能力,以下是题目:
- tcp udp 区别
- eventloop
- react-router 实现原理
- 前端安全
- http2.0 和 keep-alive区别
- webpack打包速度优化方式
- 前端优化方案
- cdn原理
- http缓存方式
- react废弃了哪几个生命周期
- react内组件通讯有哪几种方式
- useCallback 和 useMemo 区别
- 如何复用逻辑
- 如何屏蔽全局的onclick事件
- 进程,线程区别
- node事件驱动
历时1.5小时,因为除了上述问题,还有一些是跟我的个人项目相关的问题。然后面试快结束的时候,面试官还除了一条算法题,让我做完发给他,题目当时没记起来,大概意思就是:
有2w个用户参加抽奖,然后有一份名单是一定会中奖的200人的名单,然后中奖名额是1000人,除了白名单的人(白名单的人不一定会来参加抽奖),剩下的就是从用户里随机抽取。
做完就发给了面试官,然后过了几天之后就让我准备第二面了。
二面
- redis为什么这么快
- redis数据类型有那种
- redis过期策略
- mongo索引原理
- http请求主体大小
- 浏览器渲染机制
- 如果应用或者nginx挂了,http分别出现什么状态
- 爬楼梯算法
- 大文件获取最小的10位数
历时1小时,二面的面试官是技术负责人,所以面试的考点不在前端,可能更考我的综合能力。
然后3面就是hr的环节了,因为薪资待遇没达到我的预期,就拒了。
网易
一面
猪厂的面试也是视频面试,2个面试官,一个前端面试官,一个部门负责人(后端),话不多说,题目如下:
- 浏览器输入url到渲染的过程
- http缓存
- no-store no-cache 区别
- http2 和 1的区别
- 什么是多路复用
- react渲染过程
- react setState怎么判断需要更新
- hooks useState原理
- react怎么判断哪里需要更新
- react的生命周期有哪些
- js有哪些基本类型
- 栈和堆的区别
- 对象遍历的方式
- for in for of 区别
- 什么是作用域
- 箭头函数和普通函数区别
- 什么是闭包
- 什么是xss
- 垃圾回收过程
- 怎么会引起内存泄露
- new 一个方法内部实现了什么
- 浏览器2个tab如何通讯
- xss是怎么引起的
- 浏览器的eventloop
- 渲染线程和js执行线程是同一个线程吗
历时1.5小时,可能比较紧张,最后一题回答错了,说了是同一个线程。上面的问题都是同一个面试官问的,然后快结束的时候另一个面试官就问了我一个算法题: 如何使用前序遍历n叉树。
因为面试的时候是使用牛客网,所以可以直接在上面打代码,然后使用了深度优先的方式实现了出来,面试官说,能不能使用广度优先的方式,然后我也实现了出来。然后就让我等消息了。
过了大概4 5天左右,hr打给我说通过了一面,然后想约我到公司进行现场面试。
二面
历时1小时,网易二面的面试官是技术总监,他一开始就跟我表明了这次面试主要考察的是我的沟通能力与技术深度,然后问了许多我对项目的理解与实现的方式,也问我一些跟我自身项目相关的问题与我对项目的想法。
然后就通知我说没通过,评价是:技术是不错的,但是沟通能力不太好,发展潜力不够。
腾讯(企业微信文档)
一面
历时接近2小时,面试官一开始就除了2条题目,限时1小时,可以让我使用js,c++, java实现,只怪本人笨拙,只能使用js回答,题目如下:
- 判断正整数是否是对称数,如3, 121, 12321。 不能把整数转为字符串来判断。
- 有一个二叉树,每个节点的值是一个整数。写一个函数,判断这棵树中是否存在从根到叶子节点的一个路径,这个路径上所有节点之和为某一个值。存在返回1, 否则返回0。
大概45分钟左右实现了出来,告诉面试官完成了,然后面试官就看了一下我的答案,问了我的实现思路,然后就开始了面试,题目如下:
- http 123区别
- http2 serverpush websocket区别
- https为什么安全
- react diff如何做到on时间复杂度
- react 事件如何阻止原生事件
- 如何防御csrf
- redis持久化机制
- pm2如何做到负载均衡
- 进程假死怎么处理
- 有无了解过http3 quic协议
- spost跨域跟不跨域请求区别
- 白屏分析与优化
- 如何分析内存泄露
我只知道http123的区别,实在没看http3的新协议,然后其他的问题我个人觉得回答都还行,然后过了几天,就收到邮件说没通过了。
阿里(uc创新事业部)
一二三面
阿里uc的面试一共经历的6轮,因为是现场面试,123面都是在同一天完成的,总历时2小时,题目如下:
- 快排算法的实现原理与时间复杂度
- 二分法的时间复杂度
- 浏览器输入url到渲染的过程
- http缓存类型
- react diff过程
- setState是异步还是同步
因为我当时面试完没做记录,过几天实在记不起题目了。
然后过几天就收到了hr的电话再约一次现场面试,说这次如果通过就能把流程跑完。
四面
历时1小时,面试官是技术负责人,题目如下:
- 如何实现灰度发布
- 性能优化方案
- 做过什么比较有价值的项目
- 职业规划
- 对前端的看法
然后剩下的聊得基本都是我的个人项目经历相关的问题。
5面就是hr的面试了。然后等通知了
过了2天,收到hr的电话,说另一个部门负责人对我感兴趣,想加多一轮面试,可以视频面试,我当时就蒙逼了,怎么突然加面。
加面
历时1小时,6面的面试官是业务负责人,大致聊的都是项目、方案、实现方式、怎么落地,遇到什么情况怎么处理。
然后国庆前一天就收到邮件了
唉,都不让我好好的过一个国庆。
晓教育
一面
晓教育是现场面试,一开始hr就给我一份笔试题,让我30分钟完成,我大概看了一下6题,2题输出题,4题编程题,其中是:
- 数组排重
- 实现冒泡排序算法
- 实现发布订阅
- 记不起了
看到题目我心想,就算我会,我30分钟也不一定写得完啊。。。只能潦草地写下了代码。然后交给hr,过一会儿面试官来了,开始了面试
- js继承的方式
- 节流防抖区别
- js的事件循环
- 解释一下原型与原型链
- 如何做工程上的优化
- 怎么去解决跨域问题
- react有哪些生命周期
- 介绍一下react hooks
- CSS选择器有哪些
- webpack 插件与loader区别
- webpack打包的整个过程
- 有没有写过webpack插件
二面
二面问的也是跟我项目相关的问题,聊了大概1个小时,然后差不多到了吃饭时间,hr问我下午有没有空hr面,我就说我下午还要回去上班,hr就说那会有hr打给我。
然后就没有了然后了。。
千聊
千聊一共面了1轮笔试题+2轮技术面+1轮hr面,总体来说不难,聊到hr环节的时候其实已经有点走了,但是不太好意思,也是之后没有了下文,可能hr看出我入职的意愿不高,就没联系我了。
- ts泛型作用
- img空src会有什么问题
- nodejs事件循环
- fiber是什么?作用?
- oop理解
- nodejs如何实现单线程多进程模式
- 重绘重排有什么区别
- 页面优化方案
- 浏览器输入url到渲染过程
荔枝
一面
荔枝的面试一开始发了一条连接,让我1个小时之内完成,然后才开始的电话面试,1、2面历时都是1小时。
- 三次握手四次挥手过程
- 对sass的理解
- webpack loader plugin 区别
- 为什么每个文件要import react
- tcp和udp区别
- bfc作用
- vue如何监听数组变化
- import 跟 require区别
二面
- 关键渲染路径
- dns污染
- 如何解决高并发
- ssr优势
- ssr原理
- hook和class区别
- react优化方式
- http缓存
- 子组件更新,父组件会更新吗
- html 预解析
可能是2面dns污染和ssr原理不会,回答得不好,然后就没通过了。
汇量科技
一面
一面是视频面试,历时1.5小时,题目如下:
- react diff过程
- setState过程
- useEffect第二个参数是干嘛的
- 如何在router实现登录检验
- hook如何实现compomentWillMount
- 有了解过redux吗
- context provider的作用
- forwardRef原理
- 什么是节流防抖
- 浏览器输入url到渲染过程
- async defer区别
- ssl过程
- 什么是数字签名
- http缓存
- eventloop
- 有了解过tree sharking吗
- 什么是原型链
- 如何实现一个wbepack插件
- css-module是干嘛的
二面
二面是现场面试,题目如下:
- 对前端的看法
- 职业规划
- 如果一个单点的服务器在国内,如果加快外国的访问时间
- 页面性能优化
因为三面面试官在开会没空,就让先hr面了,聊完之后就让我等下一面的面试
三面
- 如何分辨一个前端的好与坏
- 职业规划
- 页面优化方案
- 性能优化指标
- 做了什么比较有价值的项目
金山(wps)
一面
- 输入url到浏览器打开过程
- 怎样会引起内存泄露
- 垃圾回收机制
我当时面完之后看了一下时间,一共用了16分钟,我还以为我不通过了。
二面
- 使用nodejs需要注意什么
- http缓存
- 输入url到浏览器打开过程
历时20分钟
三面
- 首屏优化方案
- pm2原理
- 电影院分配位置实现思路
- 如何实现平滑发布
- 项目相关
然后就到了hr面了,薪资也算满意,但是办公地点在珠海,就拒绝了。
美的
一面
- vue 和 react那个性能更好
- react diff原理
- Object.create原理
- js继承方式
- 如何实现一个中间列可滚动的表单组件
- 对react hooks的看法
二面
- js垃圾回收
- http能获取到https的cookie吗
- vue和react区别
- react 生命周期为什么要移除
- react fiber主要解决什么
- react fiber的原理
- tcp3次握手 4次挥手
- babel编译过程
- http缓存
- hooks setState原理
三面
三面要现场面试,当时在跟一个项目,一直没时间,然后过了一段时间之后,hr的电话我已经找不到了,联系不到他了。。
总结
经过这半年的面试,我发现现在对前端的要求越来越高了,面试的问题已经不仅限于纯前端了,还可能会涉及一些偏后端的知识,例如:数据库、redis、nginx、网络协议的一些基本知识,还有一些公司也会考到算法,所以大家在学习知识的时候,同时补一下相关的知识点,免得面试官问的时候没答好而失去了面试机会。
最后祝大家面试都能顺利通过,都能拿到自己满意的offer。