美团大佬教你高效准备前端一面

大家好,今天的分享是由uncle13提供,主题是“第一轮面试的要点及准备策略”。

uncle13从事前端 8 年+,现在是美团的一位 L8 的大佬,也负责前端团队的招聘工作。

以下是毛老师的分享正文:

大家要注意的是,一面的侧重点是技术摸底,所以一面也是 offer 的敲门砖。

一面的面试官,一般是应聘岗位平级的骨干同事,是入职后一起并肩作战的伙伴,同时也是面试环节中最难的。

通常会从基础知识的掌握程度学习能力沟通能力思考与总结能力以及协作能力等多方面,来考察候选人是否合格。

一面的过程中,面试的同学需要注意以下要点:

  1. 遇到不会的问题或者刁钻的问题,不要紧张。你可以当成是压力测试,先尝试用最基础的方式去解决,然后再逐步优化。如果根本没有思路,可以请求面试官提示,还不行的话就说这个我下去研究一下。如果能解决则加分,解决不了也是扛住了压力;
  2. 遇到会的题,不要激动,要学会迂回,假装思考一下。如果回答的太流利,那么面试官认为你背过题,会进一步的从其他方面去考察。当然不要所有的题都思考一下,比如 cssflex 属性,要是不能流利的回答出来,就说明基础有问题。

一、如何准备一面?

继续跟大家分享应该从哪些方面去准备一面。

1. 知识体系

很多社区大佬都会定期的维护自己的知识体系,这在其他领域内也是一样有效的,这值得大家学习。

将碎片化的知识点通过自己的理解关联起来,可以做到举一反三,在后续的工作和面试中就会有比较清晰的逻辑,即使遇到不熟悉的知识点,也可以通过体系化的方式拓展。

知识体系可以帮助你尽快的了解自己,查缺补漏,高效的复习前端技术。

对于还没有自己知识体系的同学,可以快点行动起来。

最简单的方式就是通过思维导图列举出来,相关的资料有很多,大家可以找一些开源的,然后按自己的理解进行删改。

另外,如果你参加我们的全流程辅导,我们的复习资料中会提供相关的知识导图。

2. 时间分配

梳理完知识体系,接下来就是制定一个合理的学习计划。

这个要根据自己的基础掌握情况来灵活安排,一般情况下,基础准备时间为2个月左右,太长了容易忘记,时间太短的话,复习效果往往会打折扣。

以下是最近辅导的一位同学的复习计划,他工作两年了,列计划的时候也是按模块去拆解:

基础知识项目与业务算法与数据结构设计思想与工程化框架与原理
3周1周2周1周1周

3. 算法和数据结构

大家不要觉得,我就画个页面,用不上复杂的算法,这就是“面试造火箭,上班拧螺丝”,没有必要学习。

其实大家把自己带入到面试官的角色,你会怎么快速考察参加面试的同学?基础知识点可以通过背书来学习,算法能吗?

算法和数据结构算是基本功,在宇宙条的带领下,现在各个公司对这块的考察,也越来越重视。

而且这一点需要准备的时间会比较久,建议大家没事就刷一下,最好是在复习阶段,每天抽出至少半小时来刷题。

遇到不爽的领导,看看自己 leetcode 记录,会有种强大的感觉。

这一块比较薄弱的同学,至少要把排序搞明白,B 站上也有很多关于算法的免费课程,可以看看。

4. 面经

我们的公众号上有很多面经,小程序里面也有相关的入口。

我们提供的面经范围还挺广,大部分都能直接查看答案。

而且社招、校招的都有,大家在复习的过程中,如果感觉到没有方向了,可以去看看这些面经,找找自己的薄弱环节。

面试中很少出现全程一样的面试题,加上前端的常见知识点就那么多,大家看面经也不用贪多。

我们也提供了模拟面试的辅导服务,如果大家想体验一下大厂面试官的风格,可以添加小助手(微信号:interview-fe)来咨询和报名。

5. 常见功能的手写实现

大家还要额外准备前端常见的手写题。

比如:深拷贝、事件总线、es5 继承,以及一度很火的手写 Promise 实现等。

这些手写功能不仅考察了面试者的编码能力,还能考察对原理和规范的掌握程度。

虽然实际面试过程,面试官可能不会问的特别细节,比如让你实现一个完整的 Promise,但是我们自己学习这些手写功能的时候,不能浅尝辄止,需要考虑使用场景、错误处理、规范等细节的问题,千万不要背代码,不然手写代码一时爽,深挖细节火葬场。

我们的题库里面收集了绝大部分的手写题,大家可以多对照着练习。

6. 项目经验 - 难点和亮点

相信参加过面试的同学,基本都会被问“你对哪个项目的印象最深?”、“请说出这个项目中的 3 个技术难点”等问题,你能很快答出来吗?

其实不管是校招还是社招,对于项目都要提炼出「难点」「痛点」「亮点」以及「解决方案」,要体现出自己的「思考」和做出的「努力」,对应于「问题 - 思考 - 解决 - 成果」这样的一个过程,也是大厂很看重的能力。

如果没有丰富的项目经验,可以多向社区大佬学习,也可以参加我们提供的简历辅导服务,让导师帮忙挖掘下亮点。

7. 执行计划

重中之重!!!

这一过程比较枯燥且漫长,坚持下来就好。

只是痛一时,会让你的薪资提升30%,工作效率提升n%。

二、一面的试题集

我找了几套比较典型的面经,把里面的一面题目整理了出来,大家可以好好研究下,如果能回答出 80% 以上的问题,相信你的基础已经很不错了。

由于时间原因,我也不给大家一一粘贴答案了,相关的题目在我们的小程序里面都有,大家搜索查看答案即可。

试题(一)

  1. 闭包是什么? 闭包的用途?
  2. 简述事件循环原理
  3. 虚拟dom是什么? 原理? 优缺点?
  4. vue 和 react 在虚拟dom的diff上,做了哪些改进使得速度很快?
  5. vue 和 react 里的key的作用是什么? 为什么不能用Index?用了会怎样? 如果不加key会怎样?
  6. vue 双向绑定的原理是什么?
  7. vue 的keep-alive的作用是什么?怎么实现的?如何刷新的?
  8. vue 是怎么解析template的? template会变成什么?
  9. 如何解析指令? 模板变量? html标签
  10. 用过vue 的render吗? render和template有什么关系
  11. 实现一个节流函数? 如果想要最后一次必须执行的话怎么实现?
  12. 实现一个批量请求函数, 能够限制并发量?

试题(二)

  1. let var const 有什么区别
  2. typescript你都用过哪些类型?typescript中type和interface的区别
  3. 简述https原理,以及与http的区别
  4. http请求跨域问题,你都知道哪些解决跨域的方法
  5. node中cluster是怎样开启多进程的,并且一个端口可以被多个进程监听吗
  6. vue-router源码
  7. vue原理(手写代码,实现数据劫持)
  8. webpack怎么优化,你工作中用到过那些?
  9. cookie,session,localstorage,sessionstorage有什么区别?
  10. 算法:判断对称二叉树

试题(三)

  1. vue的computed和watch的区别
  2. 说下vue的keep alive
  3. 什么是立即执行函数
  4. 谈下事件循环机制
  5. css优先级是怎么计算的
  6. CSS相关的性能优化
  7. 谈下webpack loader机制
  8. 进程通信方式有哪些
  9. 爬楼梯问题
  10. 实现一个trim方法

试题(四)

  1. 介绍下盒子模型
  2. 有哪些方式可以使div居中
  3. new操作符具体做了什么
  4. 谈谈变量提升
  5. vue的数据绑定机制是如何实现的
  6. vue next tick实现原理
  7. 有听过前端性能优化指标RAIL吗
  8. 进程和线程的区别
  9. tcp滑动窗口是什么
  10. 实现一个斐波那契数列

试题(五)

  1. react fiber有哪些优点,怎样做到的
  2. 谈谈你对作用域的理解
  3. 双飞翼/圣杯布局
  4. 浮动元素会造成什么影响,如何清除浮动
  5. 网站首页有大量的图片,加载很慢,如何去优化呢?
  6. 描述下浏览器从输入网址到页面展现的整个过程
  7. uglify原理的是什么
  8. tcp重试机制
  9. 层次遍历二叉树
  10. 实现节流函数

三、最后

给“前端面试题宝典”的辅导服务打下广告,目前有面试全流程辅导简历指导模拟面试零基础辅导付费咨询等增值服务,感兴趣的伙伴可以联系小助手(微信号:interview-fe)了解详情哦~