前端社招——微派一面面经
背景
由于所在行业受政策的影响,公司考虑转型,而且为了节省成本,进行了裁员,我不幸在此次的优化名单中。
虽然拿到了裁员的赔偿,在休息几天后,我还是拿起了书本,开始复习找工作。
网上五花八门的面试题很多,大部分都仿佛还是几年的题库。再想想这几年的新技术点,发现自己的知识体系还是有很多遗漏的。
于是按照惯例,从原型链开始,函数继承,页面渲染流程,页面性能优化,Promise,ES6,CSS,前端常见手写实现,算法……把常见的知识点简单过了一遍。之后就是开始面试找状态。
微派是我面试的第一家公司。
面试经历
这次是视频面试,一上来,没有自我介绍,没有问项目,直接给了三道题,让我实现。
我当场就有点懵逼了。
纳尼,现在面试都这么直接的吗?
我是社招啊,自我介绍都不用吗?
行行行,你是面试官你牛逼,我强压住内心的不解与郁闷,开始了解答。
第一题是写出输出值,主要是考察宏任务、微任务的执行顺序,很常见的一道题目,之前有复习过,很快就答出来了。具体的题目没有记录,大家可以直接搜下 Promise、async/await、setTimeout 相关的题目,这类题目都差不多。
第二题是手写bind,要求不能使用call、apply。啥?要实现bind,还不让用call和apply?我前两天在mdn上见过bind方法的polyfill,但人家是用apply实现的啊,你这不让用apply,可咋写?暗自吐槽了一下,果断放弃。
第三题是一道数据结构转换,将一个给定的数组结构数据,根据数组中元素的parent字段,转成嵌套的结构,类似于这个题: https://blog.csdn.net/weixin_43972437/article/details/105239906 。受第二题的影响,当时心态不太好,试着写了一会儿,没有写出来,就放弃了。
面试官一看,你咋一道题都写不出来,在逗我吗?然后就问了下我 new 的执行过程,提示我第二题主要就是 new 的实现思路。
下来之后查了下,第二题要先自己实现apply方法,然后基于自己实现的apply方法实现bind。好家伙,一道题两个考点,疯了吧。
现在的前端面试这么卷的吗?
之后就是一些常规的前端基础题:
-
webpack 处理过程
-
loader、plugin的实现
-
浏览器的线程有哪些?
-
从html的解析到渲染,不同线程间怎么配合
-
函数的this指向(普通函数、匿名函数),箭头函数呢?
-
...
就和一开始就要手写算法题一样,面试结束的也很果断,也没有问面试官问题的环节,第一场面试就结束了,当然这一轮面试也直接凉了。
总结
突然想到周杰伦的一句歌词:“爱情走的太快就像龙卷风”,面试这么虐人,不能承受的我却无处可躲。
不过这次面试还是有些收获的,让我找回了一些面试状态,找到了自己知识体系中的薄弱环节,同时还让我重新认识了现在的前端招聘市场。