先说下本人的情况:坐标深圳,垃圾二本,2016 年 10 月份开始程序员生涯,技术栈 Vue,React,微信公众号,小程序。 从五月面试的经历来看,突然想到一句话:面试造火箭工作拧螺丝。这阵子想着出来面试是因为自己部门被合并到另一个部门了,合并后技术主管跑路了,产品经理成了我们的领导(就是瞎指挥,工作安排不合理),反正自己是觉得很不适应,部门也跑了很多人,所以就想出来面试试水,可能快两年多没面试了,刚开始面试的时候也是紧张,经常记不起来东西,还有就是现在无论大小公司,难度比以前是高了不少,所以导致前面几场面试都铩羽而归。五月份大概面试了 10 家左右,收到3个 offer 最后都拒绝了。 offer 情况:1. 有伴科技(16.5k,薪资达不到自己要求没去),道通科技(21.5k,996原因没去),快运科技(16.5k, 拒绝)。
腾讯一面(视频面试-腾讯会议)
上来就是手写代码(数组对象去重,大数相加),共享屏幕给面试官,写完后面试官问有没有更好的实现方法,然后聊了下编程习惯方面的东西,接下来就是提问和回答环节。面试官给人的感觉很nice, 自己不会的问题请教他都会耐心回答,感觉自己太菜了,最后也是一面都没过,伤心呀。
- 手写代码(数组对象去重,大数相加)
- Vue 运行机制
- v-if 和 v-show 区别
- http2 和http1 区别, http2 有新哪些特性,http2 多路复用原理
- 有了解过CDN 吗, 怎么判断哪台 CDN 服务器距离客户端最近
- React 和 Vue 区别
- readu 实现异步action
- 突然有个活动,页面访问量很大,但是不改后端的前提下,前端该如何做
- 白屏原因
- 常用Linux 命令
- webpack4 哪些新特性, treeshaking 原理
- 你经常用到的前端性能优化方法
- 怎么判断浏览器是否支持webp, webp优点
- 输入 URL 到页面渲染的整个流程
- IE6 如何实现数据劫持?(San.js,它也是传统的MVVM数据双向绑定并且兼容IE6。还有VBScript,在VBScript中可以写类,类中可以定义getter和setter,同样可以实现数据的双向绑定)
头条一面(视频面试-牛客网)
上来也是手写代码,最后自己没写出来,所以也是一轮游。
- 编程题:有10个篮子,分别装有1,2,4,8,16,32,64,128,256,512 个苹果,篮子编号为 0 ~ 9,请问如果正好想取 825 个苹果, 需要的篮子编号为多少?例如取 5 个苹果,需要 0,2 号篮子(1 + 4 个)。
- 编程题:正则匹配邮箱
- Vue 和 watch 的实现原理和所依赖的数据
- EventLoop, 宏任务微任务
- 类式继承的方案
- http 握手原理
- Koa 中间件机制及代码实现
- React Hook 原理
- 前端安全,常见的 web 漏洞
- TCP 为什么是可靠的
- import 和requre 的区别
平安一面(微信视频)
面试官一上来就问有木有系统学过 css 和 js,我说有,接着面试官就开始从 css 相关问起,然后接着就是 js 相关。 结果: 一面倒是过了,面试官也很满意,最后尼玛做平安的测评没有通过,自己不知道挂在那里了,据说是如果平安测评没过的话,就算你是天王老子也没有机会进入平安。
- 行内和块级元素居中
- css 层级
- BFC
- 垂直居中有哪些方法
- flex布局,页面有一行很多卡片排列,最后一个卡片位置不够用,导致中间出现空白,如何处理?
- vue进入一个页面出现字体抖动,如何处理
- 执行上下文,怎么形成执行上下文
- 原型链
- Promise 自己实现的话需要实现哪些 API
- js 异步解决方案 await asyn 优缺点
- 前端优化点
- 你用过哪个webpack loader,plugins,能说出来吗
- webpack 配置文件有哪些关键东西
- js 判断类型有哪几种方法
- EventLoop,浏览器 EventLoop 和 node 的 EventLoop 有什么区别
- webpack打包流程 打包后包裹函数叫什么名字
- Vue render函数如何渲染页面
- 你的优势在哪里
顺丰快运科技(offer)(视频面试)
面试官很nice,每次问完一个问题都会互相探讨下,比如说进行问题的延申和深化,然后我回答不出来就耐心解答。二面和三面没问技术问题主要聊一些自己的职位规划以及对公司的一些期望等等。下面列举的是一面的问题
- session 和 token 的区别
- nextTick 原理
- csrf 攻击
- 三次握手四次挥手
- HTTP2 新特性
- EventLoop
- Resful api
- vue 响应式原理
- vue 运行机制
小结
通过上面的面试可以看出,中大厂对基础及算法的要求也高一些,问的问题无论是广度和深度都是比较到位的,所以各位出去面试的时候一定要先准备好,想去大厂的话,算法和数据结构要刷一刷。而且个人感觉现在就业形势有点严峻,我现在的情况就是大厂进不去,小厂不想进。
面的其他公司面试题整理
这里就不一一列举公司名字了,这些公司基本都是围绕你自己熟悉的技术栈、工作经历、工作中遇到的问题、解决方案以及 Vue 和 React 问的最多,我下面就列举一些经常问的。
- 移动端兼容问题,解决方案。
- Vue React 生命周期,常用生命周期等
- Vue 响应式原理
- Vue React 对比
- Vue watch 和 computed 区别
- 组件化,工程化
- webpack 相关
- 前端优化(webpack打包优化 -> 图片优化 -> 浏览器缓存 -> cdn 缓存 -> 服务端渲染 -> dom优化(减少dom操作)->减少回流和重绘 -> 优化首屏体验(骨架图,懒加载)-> 事件节流防抖)
- css 垂直居中, BFC,选择器优先级等
- EventLoop
- 虚拟列表(一次性加载大量数据并渲染成dom)
- Promise 相关(异步)
- Tcp Http 相关
- uni-app,element-ui,echart 使用等
小结
相对来说,小公司倾向于考察工作经验,项目经验,Vue 和 React 使用熟练程度。就算问到原理,也不会太深,他们会对你的项目很感兴趣,一般会问你负责这些项目的哪些模块或者功能,遇到什么难题,怎么去解决。
总结
因为自己个人能力原因,没有总结面试题答案,我分享这些面试题出来,是希望对现在在找工作的小伙伴有一点帮助,如有不足的地方希望大佬指出。经过这次面试经历,自己也总结了一些技巧。
个人简历
我觉得个人简历首先是要写的美观一点,最好做成 PDF ,毕竟你是前端,自己写的页面要给别人看的,所以简历符合大众审美,让 hr 觉得你的审美意识还可以,进而获得更多的面试机会。
如何回答问题
尽量不要止步于问题,也就是面试官问什么你答什么,而是尽量发散问题,从这个问题关联到一些其他问题,展示自己熟悉的领域。 比如说面试官提问了如何进行前端优化,那你就发散到这些问题上 webpack打包优化 -> 图片优化 -> 浏览器缓存 -> cdn 缓存 -> 服务端渲染 -> dom优化(减少dom操作)->减少回流和重绘 -> 优化首屏体验(骨架图,懒加载)-> 事件节流防抖) 当然引导面试官的前提是你确实熟悉这一块的内容,否则就是给自己挖坑了。
多总结反思
每次面试完,把面试题列出来,哪些自己答的不好,答不出来的,自己查漏补缺。不断的总结,不断的变强。
目前还继续在原来公司待着,想着再准备下,再出来找工作,如果各位小伙伴有内推的话,记得关照下小弟。