2019 前端秋季社招面试经历总结(二年多经验)
1. 前言
本文内容讲笔者在 2019 的秋季社招时期,去大厂面试的问题和经验总结。
居安思危,安逸久了,都要试着知道自己目前的市场价,而最好的方法就是去外面面试几场,受受打击,知道自己的不足,以后加强。
”
笔者入坑前端 3 年多了,有 2 年多的前端工作经验,面试坐标:广州。
本文的面试问题只写了些开放性的问题,其公司要求保密的试题就不写出来了。
2. 字节跳 X
一面,45分钟
根据自己简历和做过的项目,问一系列相关问题。
闭包的输出值,考查闭包(看试题给结果,分析过程)。
状态码 304 是什么意思,有什么用 ?
浏览器缓存的方法有哪些,它们的优先级是怎样的 ?
都说要减少 https 的请求,https 为什么慢 ?
http2 与 http1 有什么区别 ?
click DOM 节点的 inner 与 outer 的执行机制,考查事件冒泡与事件捕获 (看试题给结果,分析过程)。
for 循环中的 var 、let 与 const 区别,比如 for( const i = 0; i< 3; i++ ){ console.log(i); } 会输出什么结果 ?(看试题给结果,分析过程)。
有没有系统学习过 es6 或者看过 es6 的书 ?
js 单线程、宏任务与微任务的执行顺序 (看试题给结果,分析过程)。
考查箭头函数的 this 与 普通函数的区别,this 的指向 (看试题给结果,分析过程)。
vue 中 computed 与 watch 的内在是如何实现的 ?
接下来前端要深入的方向 ?
写一个方法输出 ABCDEFG 的值(看试题、现场写程序)。
从排好序的两个链表中,找到相同的节点,并输出链表(看试题、现场写程序)。
最后面试官问了句,你没刷过什么面试题吗 😪。
总结
最后没过面试,总结一下原因。
因为这次面试是字节的猎头找的我,帮我内推的,但我还没准备好就去了,没多大信心;
很久没面试了,第一次面试还是比较紧张,很多技术问题的回答也不是很好,现在回想下,当时连情商都不在线 😪。
3. CVT X
一面是电话面试,半小时
问了简历中的项目的一系列问题(此处省略)。
vue 中 next-tick 的作用与大概实现原理 ?
vue 组件的双向绑定通信是如何实现的 ?
vue 按需加载的方式有几种,是哪几种 ?
浏览器缓存的类别与优先级 ?
react 中数据请求为什么要在某个生命周期里面执行,在哪个生命周期 ?
react 高级组件的作用 ?本质是什么来的 ?
总结
CVT X 的面试是找熟人内推的。
回答的都挺好,过了一面。
二面是视频 HR 面试,20 分钟
问了一系列个人以及在现在公司的问题。
总结
后面就没有下文了,所以没有第三轮现场技术面,我猜原因如下:
谈期望薪资时,我说了该公司的招聘信息上的最低薪资,应该还是太高了,因为那是 3年+ 经验 的薪资范围。
再加上我是以前面的字节跳 X 的薪资范围做为了参考标准 😂,字节跳 X 的薪资范围的是很高的,我有点漂了 😰。
4. X 教育
一面,现场面试,大概 1 小时
var 和 let 的作用域,匿名表达式的运用(看试题给结果,分析过程)。
--proto-- 指向 (看试题给结果,分析过程)
闭包,及修正方法 (看试题给结果,分析过程)
一个从小到大排好的数字型数组,找到数值为 target 值,并返回 index 值(现场写程序) function findIndex(arr, target){ ... }
给两个 input 框,实现双向绑定功能的思路或者代码(现场写程序)。【JavaScript学习笔记】自己实现双向绑定[1]
nextTick 的使用场景 ?
vue 路由中,有 post/:id 的路由,当路由切换 post/1 => post/2 时,组件会更新吗,如何修改能更新 ?vue更新路由router-view复用组件内容不刷新[2]
vue-router 的导航钩子有哪些 ?组件里面的导航钩子又有哪些 ?
header 头部固定,剩下 body 占满全部高,超出就上下滚动,如何实现 ?
平时的开发流程 ?
二面,大概一个钟
tcp 和 udp 的区别,各自的优势是什么 ?
web-socket 用过吗 ?
对计算机的基础知识熟悉吗,比如网络层什么的 ?
给 10 亿的数据的 url 去重,思路(现场写部分代码)
三面,HR 面
问了一系列个人以及在现在公司的问题。
总结
技术面试的过程表现的都不错,最终拿到了 offer ,开出的薪资涨了不少。
虽然总收入涨了,但是就时薪来说,还是亏了的。
跳槽的成本是很高的,总薪资或者时薪没有涨 30% ,都是亏的。
因为现在的公司上班时间是 965 或者说是 955,平时有比较多的时间写博客,做些有意思的开源项目什么的,入职这家公司估计就不能了。
所以没去这家公司。
5. 酷 X
一面
线上笔试,20 分钟
线上笔试的内容应该是有试题库的,笔试前签了不能泄露试题的协议之类,就不写出来了。
现场逻辑题面试,30 分钟
行测逻辑题面试,试题声明了不能泄露试题之类,就不写出来了。
现场技术面试,大概 10 分钟,就问 10 个问题左右
模块化开发方式有哪些,你用过哪些 ?
闭包的理解和其应用场景有哪些 ?对JS闭包的理解及常见应用场景[3]
对 mvc、mvp、mvvm 的理解 ?
vue 双向绑定的理解 ?
对设计模式的理解,有用过哪些 ?
http 的理解,tcp 包有什么内容 ?
https 为什么比 http 安全 ?
https 请求,你通常要注意的是什么 ?
post 和 get 请求的区别 ?
前端要考虑什么安全问题,比如:你知道 ssr 跨站脚本攻击吗 ?
一般工作中你是如何排查前端性能问题的 ?
总结
结果是没过,技术面试问的太宽了,以上写出来的问题还是我细化之后的了。
我感觉我的技术范围和面试公司的不是很一致。
6. 总结
情况
投了十来份简历,都是离我住的地方不是很远的公司,都是广州的大厂,收到的面试邀请才 4 个而已,有些投了简历都没人看。
笔者 GitHub[4] 上的开源项目总收获的 Star 数超过了 1.6K 好像也没多大作用,面试过程都没怎么问。
广州的互联网大厂其实挺少的,目前大厂没有什么坑位,有的估计也是候补的,要求更加严格,而且社招的几乎都是 3 年及以上的高级前端工程师,不到 3 年经验的没多少机会。
2 年多的社招,面试的内容绝大部分还是基础知识,实际工作的内容问得少。
笔者在广州的时薪应该算是中偏上的水平。
经过最近的面试,笔者感觉如下:
经过 2018 年的寒冬,现在 2019 年下半年了,寒冬依然严峻。
想通过社招进大厂的程序员,最好有 3 年及以上经验了再去面试大厂。
回答开放性问题时,要把面试官往自己熟悉的方向引。
很久没面试了,要准备好再去面试,不然信心不足,成功率不高。
面试成功往往是后面面试的公司,先去面试几个不是最想去的公司,再去面试最想去的公司。
不要裸辞,特别是才工作一两年的程序员,不然压力非常大,最后可能找到的也是不是非常理想的公司。
如果非要跳槽,那建议:骑驴找马。
7. 最后
笔者博客地址:GitHub[5]。
推荐阅读:前端硬核面试专题[6],内容包含:HTML + CSS + JS + ES6 + Webpack + Vue + React + Node + HTTPS + 数据结构与算法 + Git 。
推荐阅读:
1、GitHub 上能挖矿的神仙技巧 - 如何发现优秀开源项目
参考资料
【JavaScript学习笔记】自己实现双向绑定: https://blog.csdn.net/orangecsy/article/details/79759663
[2]vue更新路由router-view复用组件内容不刷新: https://blog.csdn.net/bigbear00007/article/details/90602632
[3]对JS闭包的理解及常见应用场景: https://blog.csdn.net/qq_21132509/article/details/80694517
[4]GitHub: https://github.com/biaochenxuying
[6]
前端硬核面试专题: https://github.com/biaochenxuying/blog/blob/master/interview/fe-interview.md