一个普通前端研究僧的 2019 秋招面经(10+公司面经) | 掘金技术征文

913 阅读10分钟

8月

本来还有点犯拖延症,7月31日结束了好多提前批,自己都以没准备好为借口没有投,但是8月2号突然收到腾讯的电话,我找暑期实习时的简历被捞了起来,我的秋招就这样被迫开始了。

原文作者 buppt 原文链接 github.com/buppt/Video… 转载请著名

腾讯提前批一面

面试前先做5道题

  1. 实现水平垂直居中
  2. 实现观察者模式的 listener 和 trigger
  3. 常用的跨域方案和原理
  4. 实现函数从字符串中找出出现次数最多的字符和出现次数
  5. 实现函数判断某一个数字是否是质数

这几个题还好,面试官看完也没有问。

  1. 问现在实习项目的意义,为什么要做这样的一个项目。
  2. jsonp 的原理,还有什么不遵循同源策略,为什么 img 标签不遵循
  3. 手写一下只有 username 和 password 的表单向后端发送请求,进行用户验证。使用原生 js。
  4. get 和 post 请求的区别。
  5. 谷歌浏览器内核是什么,浏览器的解析流程和渲染流程。
  6. 虚拟 dom 的好处,diff 算法。

面试官一直在追问项目的意义,答的很不好,不出所料,一面就挂掉了,这次面试主要是给了我自己一个提醒,该走出现在的舒适区了。

腾讯云提前批一面

后来又收到了腾讯的面试通知,发现是另一个部门。周六下午面试,当时还奇怪怎么腾讯周六还上班,原来是深圳的部门这个周末专门过来面试的,很奇怪这次我的岗位上写的是后台开发,到了之后问面试官才知道,前后端都在他那里面。所以这次面试和其他前端面试感觉有点不一样,问的问题偏浏览器、数据结构、算法、计网这些通用技术。问的太多了,而且问题很大,很开放,只记得一部分了。

  1. 手写快排
  2. 伪代码写一下中序遍历、发布订阅模式、单例模式、原生 ajax
  3. cookie 有哪些了解
  4. 进程间通信
  5. hash 表是什么,有什么用,查询复杂度是多少,什么是 hash 冲突
  6. 对 node 有哪些了解,对 node 的模块架构有没有了解
  7. 为什么要有同源策略,没有会出现什么安全问题
  8. tcp 三次握手详细讲一下,包括每次传输的信息 ack、syn 等
  9. time wait 状态是什么
  10. 做过哪些前端优化,懒加载的原理
  11. 手写一个 sql,在一个工资表中算一下平均工资。。。

二面现场面,同一个地方,第二天周日去的,面试管是产品经理,一共只面了20分钟就出来了。

  1. 了解过哪些腾讯的业务,toB 的
  2. hash 表和 b+ 树了解吗
  3. 链表插入新节点和二叉树插入新节点
  4. tcp 三次握手四次挥手,syn 攻击
  5. 一个页面如果有多个接口的数据展示,如何做用户体验更好
  6. 登陆注册如何考虑安全问题
  7. 做过哪些前端项目优化
  8. ajax 介绍一下

三面,电话面,7点到9点刚做完360笔试,有点懵。面试过程基本就是每说一个东西,就会问为什么使用这个技术,为什么不用其他的技术,有什么优缺点,主要问缺点。

  1. osi 五层协议
  2. 三次握手,四次挥手,每次发送的数据包中都包含哪些信息
  3. 系统介绍 http、https
  4. https 为什么要用非对称加密,为了什么安全问题
  5. https 为什么需要数组证书,
  6. 各种跨域方式,每一种的特点
  7. 给一个场景,前端需要向多个不同域的服务器请求接口,问使用什么跨域方式,怎么考虑
  8. 中间层有什么缺点,如果有两个不同域名下有相同的接口名称,怎么处理(这个问题我问了好久还是没听懂相同名称的接口会出现什么问题)

三面之后挂了,网络和安全相关的问题太多了,确实也不太会。

美团一到三面

面试体验太好了,以至于忘记了问的什么问题了😂记住多少写多少吧。

  1. 算法只写了一个,二分查找找一个数组中的峰,就是比左边和右边都大的数字的 index
  2. yarn 和 npm 比有什么好处,yarn lock 相关
  3. Babel 有了解吗,将 const、箭头函数转成 es5 大概是如何实现的
  4. es6 为什么可以只引入需要的模块
  5. 搭建一个前端项目需要考虑哪些内容,如何进行技术选型
  6. 定义 arr[4] = 4 和 arr = [undefind,undefind,undefind,4] 有什么区别
  7. 如何检测 ts 开发时使用 any
  8. 虚拟 dom、双向绑定,
  9. 在不支持 defineproperty 的浏览器中如何实现一个双向绑定,
  10. typeof typeof undefind
  11. vue 和 react 有哪些优缺点
  12. 正则 match 和 test 有什么区别,手写一个正则,忘记是匹配什么了,没写出来。。
  13. 在实习中学到了哪些,遇到了什么问题,是怎么解决的 end 平时如何学习前端的

星环科技 1,2,3 面 && 阿里一面

都只面了 20分钟,感觉回答的也没什么问题,但是阿里挂了,后来问了一下阿里内推的同学,面试官的评价是问题回答的不在点上。。。好吧

  1. 前端路由 hash 和 history 对比,优缺点,hash 模式跳转到其他页面再调回来会回到根页面。
  2. 虚拟 dom 有什么优点,性能,跨平台,diff 算法,双向绑定。
  3. flex、grid 网格布局,兼容性问题
  4. 输入 url 之后发生了什么,为什么同步的 script 要阻塞 dom
  5. 一行布局如何实现,float会有什么问题,如何避免
  6. react hooks 出现为了解决什么问题,可以实现哪些功能
  7. 接口数据结构是如何制定的
  8. class 和 实例有什么区别
  9. 常用的 es6 语法
  10. vue 数组如何监听变化,修改length能不能出发渲染
  11. display 有哪些属性
  12. 中序遍历递归和非递归写法
  13. bind、call、apply 区别、内部实现
  14. 状态码 301、302、304
  15. tcp 为什么需要三次握手
  16. 输出数组中,加和为0的最长子数组的长度

微信

一面

  1. 主要是针对之前做的项目的提问,以及现在有什么改进的想法。
  2. 算法题,如何求一些坐标点之间的最大斜率。每个点的坐标是一个数组,存在一个二维数组里。回答的是先按照 x 坐标排序,然后只计算相邻坐标之间的斜率,找出最大值。
  3. 猜一下小程序的框架是如何实现的

二面面的一塌糊的,当时在公司实习,面试官突然加微信说,20分钟后微信语音面试。

  1. 问创建一个俄罗斯方块游戏需要考虑哪些内容
  2. url 输入到页面可以操作
  3. 为什么 script 要放到底部
  4. 如何进行页面间通信

面委会视频面

  1. 先做一道题,输入两个字符串,大数乘法
  2. 实习项目中有哪些亮点,遇到什么问题
  3. vue 放到小程序里要做哪些改变,有没有了解过小程序的原理
  4. https
  5. get 和 post
  6. 电影院建厕所需要考虑哪些问题,感觉我回答了一堆都没有在点上。。最后才知道是想问如何处理高并发的问题。

面委会二面,先做了两道题,然后电话面

  1. 第一题就是 for var i=0 循环 setTimeout。
  2. 第二题是一个斐波纳切数列。
  3. 然后就是问简历了,除了简历上的内容,会更深入的问一下,看有没有具体去了解过原理,为什么等等。
  4. vue 路由懒加载的原理是什么

最后问了面试官想听到一些什么内容。面试官很详细的给我讲了很多,比如希望听到一些有意思的地方,项目中的难点或者平时有哪些额外的了解可以分享。比如参与了哪些开源项目,深入研究过哪些其他人不知道的问题。

感觉微信主要是问之前做过的项目和实习中遇到的问题,看你有没有深入去思考过各种技术的原理,而不是单纯的背面经,导致对技术的不理解。

后来面完 hr 面挂了,越想得到的,越不能得到。

农行软开

面的第一个国企,体验和互联网完全不同,7、8个面试官面8到10个人。先轮流进行自我介绍,然后手写几道题,轮流回答,最后面试官对感兴趣的同学进行提问。 手写几个数据库的问题,我只会一个事务。。 提问环节只有一个面试官提问我,问了三个题,都答的不好,只能按理解回答了一下。

  1. 了解微前端吗
  2. vue 和 react 哪一个处理状态更方便一点?
  3. 处理经常变化的数据和不经常变化的数据,哪一个会使用虚拟 dom?

头条

主要问实习做的内容,有什么收获 算法题

  1. 输入一个 urls 数组、最大并发数 k 和回调函数 callback,实现函数同时发送的 fetch 请求数不超过 k,所有请求返回后执行 callback。
  2. 输入一个数字,交换其中的两个数字的位置,使它最大。比如 73629,换成 93627
  3. 两个升序数组,在其中每一个数组中取一个数组成一个组合,找出加和最小的 k 个组合,按顺序输出。 比如输入是[1,2,3],[1,7,11],组合有[1,1][2,1][3,1][1,7][2,7] ...

招行信用卡

在燕山大酒店,一面是两个面试官面一个人。mvvm、虚拟dom,页面返回后浏览器的行为。如何学习前端,对 vue 和 react 的新技术有哪些了解。终面,一个 hr 和一个技术负责人,没有聊技术,随便聊了聊。

猿辅导

一面

  1. this
  2. 任务队列相关,js 引擎如何判断任务加入宏队列还是微队列
  3. 输入查询内容点击百度一下,到数据返回,发生了哪些
  4. 缓存详细
  5. 前端优化怎么考虑
  6. 算法题判断一个链表是否是回文,空间复杂度 O(1)

二面

  1. settimeout 实现 setinterval,可以 clearinterval
  2. 合并区间
  3. 二叉树镜像

三面

  1. 前端加密、https
  2. 按照中序遍历的顺序找到当前节点的下一个节点,并输出

腾讯云

又被腾讯捞起来了,面了一面,感觉被用来刷 kpi。后来又被腾讯云另一部门打电话约面试,直接拒绝了。

  1. 正则匹配/tx[0-9a-z]{14}/
  2. 深拷贝
  3. 遮罩层弹窗
  4. 然后问一堆常规问题

老虎一二面

  1. 插入10000个元素(p标签)如何做比较好
  2. for 循环修改一个绝对定位的 dom 的 left 从 1到1000,能不能看到移动的过程
  3. 渲染引擎、执行引擎
  4. canvas 在 retina 屏幕模糊的问题如何解决
  5. 捕获、冒泡
  6. react 事件和 dom 事件区别,触发顺序
  7. http 头信息又哪些,传图片、表格时候需要手动设置哪些头信息
  8. https、哪些内容被加密、中间人攻击
  9. get、post 区别,传参方式
  10. css 盒模型
  11. flex
  12. es6 相关问题
  13. 缓存
  14. 图片懒加载,如何实现
  15. offsetTop,pageX,相对于那个元素
  16. parentNode、offsetParent 区别
  17. 虚拟 dom 在哪些地方会提升性能

后来看到大佬们各种 offer 求比较,留下了菜是原罪的泪水。

2019 春季 蚂蚁、淘宝、头条、快手 前端暑期实习面经: juejin.cn/post/684490…