2019 前端秋季社招面试经历总结(二年多经验)

1,218 阅读7分钟

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学习笔记】自己实现双向绑定
  • nextTick 的使用场景 ?
  • vue 路由中,有 post/:id 的路由,当路由切换 post/1 => post/2 时,组件会更新吗,如何修改能更新 ?vue更新路由router-view复用组件内容不刷新
  • vue-router 的导航钩子有哪些 ?组件里面的导航钩子又有哪些 ?
  • header 头部固定,剩下 body 占满全部高,超出就上下滚动,如何实现 ?
  • 平时的开发流程 ?

二面,大概一个钟

  • tcp 和 udp 的区别,各自的优势是什么 ?
  • web-socket 用过吗 ?
  • 对计算机的基础知识熟悉吗,比如网络层什么的 ?
  • 给 10 亿的数据的 url 去重,思路(现场写部分代码)

三面,HR 面

  • 问了一系列个人以及在现在公司的问题。

总结

  • 技术面试的过程表现的都不错,最终拿到了 offer ,开出的薪资涨了不少。
  • 虽然总收入涨了,但是就时薪来说,还是亏了的。
  • 跳槽的成本是很高的,总薪资或者时薪没有涨 30% ,都是亏的。
  • 因为现在的公司上班时间是 965 或者说是 955,平时有比较多的时间写博客,做些有意思的开源项目什么的,入职这家公司估计就不能了。
  • 所以没去这家公司。

5. 酷 X

一面

线上笔试,20 分钟

  • 线上笔试的内容应该是有试题库的,笔试前签了不能泄露试题的协议之类,就不写出来了。

现场逻辑题面试,30 分钟

  • 行测逻辑题面试,试题声明了不能泄露试题之类,就不写出来了。

现场技术面试,大概 10 分钟,就问 10 个问题左右

  • 模块化开发方式有哪些,你用过哪些 ?
  • 闭包的理解和其应用场景有哪些 ?对JS闭包的理解及常见应用场景
  • 对 mvc、mvp、mvvm 的理解 ?
  • vue 双向绑定的理解 ?
  • 对设计模式的理解,有用过哪些 ?
  • http 的理解,tcp 包有什么内容 ?
  • https 为什么比 http 安全 ?
  • https 请求,你通常要注意的是什么 ?
  • post 和 get 请求的区别 ?
  • 前端要考虑什么安全问题,比如:你知道 ssr 跨站脚本攻击吗 ?
  • 一般工作中你是如何排查前端性能问题的 ?

总结

  • 结果是没过,技术面试问的太宽了,以上写出来的问题还是我细化之后的了。
  • 我感觉我的技术范围和面试公司的不是很一致。

6. 总结

情况

  • 投了十来份简历,都是离我住的地方不是很远的公司,都是广州的大厂,收到的面试邀请才 4 个而已,有些投了简历都没人看。
  • 笔者 GitHub 上的开源项目总收获的 Star 数超过了 1.6K 好像也没多大作用,面试过程都没怎么问。
  • 广州的互联网大厂其实挺少的,目前大厂没有什么坑位,有的估计也是候补的,要求更加严格,而且社招的几乎都是 3 年及以上的高级前端工程师,不到 3 年经验的没多少机会。
  • 2 年多的社招,面试的内容绝大部分还是基础知识,实际工作的内容问得少。
  • 笔者在广州的时薪应该算是中偏上的水平。

经过最近的面试,笔者感觉如下:

  • 经过 2018 年的寒冬,现在 2019 年下半年了,寒冬依然严峻。
  • 想通过社招进大厂的程序员,最好有 3 年及以上经验了再去面试大厂。
  • 回答开放性问题时,要把面试官往自己熟悉的方向引。
  • 很久没面试了,要准备好再去面试,不然信心不足,成功率不高。
  • 面试成功往往是后面面试的公司,先去面试几个不是最想去的公司,再去面试最想去的公司。
  • 不要裸辞,特别是才工作一两年的程序员,不然压力非常大,最后可能找到的也是不是非常理想的公司。
  • 如果非要跳槽,那建议: 骑驴找马

7. 最后

笔者博客地址:GitHub