这篇文章简单总结下2018年内我的一些前端面试经历, 在这简单分享一下,希望对大家有所启发。


楼主在深圳,毕业两年。面的主要是深圳的几家公司。

包括: 腾讯蚂蚁金服LazadaShopee, 有赞 等 。

楼主在准备面试前, 想着复习一下, 但是前端的范围实在太大, 后来决定找两个肉鸡公司试一下水, 面试之后, 大概心里有个底。

最后楼主也拿到了 阿里, Shopee 等几个不错的 offer.

下面就根据上面几家大厂的面试情况,和自己搜集到的一些信息,总结分享给大家。


自我介绍

简单介绍一下就好,适可而止。 面试官就是想看看简历先,让你先说一会儿。


技术一面

一面主要考察基础, 有些会有技术笔试, 比如腾讯Shopee

Shopee 有现场的编码题, 难度不大, 要注意细节。

腾讯的技术笔试非常基础,两张纸,一般二十分钟就做完了,主要考察一些js基础,包括但不限于:

  • CSS

    • 盒子模型
    • BFC,Flex
  • 变量类型

    • JS 的数据类型分类和判断
    • 值类型和引用类型
  • 原型与原型链

    • 原型和原型链定义
    • 继承
  • 作用域和闭包

    • 执行上下文
    • this
    • 闭包
  • 性能问题

    • 比如为什么要用事件委托,原理是上面
    • 为什么Dom 操作就慢了, 解释一下
  • 看程序写输出
  • 框架相关

    • 简历上没写就不问, 写了你要答出个所以然, 原理什么的要清楚, 仅仅会用API是不行的。

都是一些很基础的考察, 但是如果写错太多, 也很容易就凉了。

一般是根据你做题的情况, 和你说的一些,针对性的提问, 懂套路的同学可以在这一步上,准备一些关键词, 并做好准备工作。

几乎没遇到问框架的, 但是基础的原理是要懂的。

一些发散性问题

  • 事件循环, Promise, setTimeout/setInterval, React setState 是如何实现的, 原理等。
  • Vue defineReactive 方法是如何实现全局状态更新的, 依赖是如何收集的。
  • 语言的词法分析和语法分析 和 浏览器的html parse 有什么区别, 浏览器具体是如何解析的, 为什么标签不闭合浏览器也能正常处理, 能怎么实现,
  • C++ 里没有settimeout, 既然没有, 要实现的话,用线程如何实现。
  • Html5 新特性
  • requestAnimationFrame 是做什么的, 如果写个 Node.js 的C++ 扩展, 怎么去优化requestAnimationFrame ?
  • Dns 具体是如何解析的?
  • 1 有没有 toString, Number(1) 有没有, '1' 有没有, 为什么
  • react diff
  • 虚拟DOM
  • react 新旧生命周期
  • 为啥有新生命周期 , 这两个可以参考我的另一篇文章中,关于 Fiber 和生命周期的介绍
  • 事件传播
  • Event loop
  • Obj getter setter

技术二面

一面完了之后, 会有相应的评价, 二面面试官会针对性的考察。

腾讯的面试官就很喜欢问 HTTP(1.x, 2.0, HTTPS), 安全浏览器缓存 方面的问题, 计算机基础,但是要懂为什么

比如:

  • HTTP 有什么缺点
  • HTTP2 有什么好处
  • HTTPS 有什么好处, 有什么缺点,为什么。
  • TCP, UDP 的区别
  • 为什么说HTTPS 是安全的, 解释一下加密过程(就非对称加密, 密钥交换那一套)。
  • 三次握手的过程,为什么握手三次, 为什么挥手四次
  • 安全相关(XSS & CSRF) (高频)
  • 浏览器缓存策略(高频
  • 缓存头相关
  • 浏览器 Cookie 相关。
  • 常见的跨域问题及解决方案
  • 常见的安全问题(csrf,点击劫持, 等等)
  • 输入URL 到页面展示发生了什么(超高频
  • 性能优化策略(结合上一条, 高频)。
  • 基础的数据结构和算法(比如快排,merge sort, N sum, Top N 等, 手写代码)
  • 事件循环原理, 看题写输出, 解释一下。
  • 一些常用的方法, 比如debounce, throttle, new, create, bind 的实现。
  • promise, 异步的处理。
  • 基础的算法和数据结构(Tree, BFS, DFS)

技术三面(腾讯交叉面)

一般都是没有三面的, 腾讯才有, 具体的套路和前面差不多。 前面两轮你都能的话, 这个就不用怕, 复盘下前面的面试情况, 准备好再去, 有备无患, 就稳。

楼主的遇到的问题大概是:

- 简单自我介绍
- 问你做的项目
- 遇到什么问题
- 排查问题的方法
- Https 的优势
- Https 连接的过程(证书, 非对称加密的过程,加密算法等)

总监面

一般到了这里就问题不大了, 当然也有翻车的。 这一步主要就是看:

  • 问项目

    • 做了什么
    • 哪些地方比较出彩, 有什么成果
    • 这里我建议实现画个思维导图来梳理, 有计划的突出重点, 自己做的好的,多做准备。
  • 看你的沟通能力
  • 有些会问你一些智力题,也有人回问数学题(比如矩阵乘法)等, 考察是否聪明.
  • 会python 吗?(腾讯)
  • 简述Https 连接的过程(还是非对称加密那一套的流程)(腾讯)

这一步, 总监觉得你OK, 就会放你到HR。


HR 面

这一步, 如果是正常的HR, 会问你:

  • 过去的一些经历,做过啥
  • 为什么离职 (权衡稳定性)
  • 对工资的期望

    • 这一步不要虚, 毕竟你都走到这了, 怕啥。这里谈钱不伤感情千万不要

      • 不要急于出价

        • 可以先套路一波
      • 给你多少就要多少

        • 一旦你说出一个薪酬范围,自己就不能增加薪酬了
      • 谈一次被打击一次,最后越来越没有底气。

        • 自信一些, 此条面对阿里的HR时, 请自行斟酌。
    • 也不要漫天要价, 自己值多少钱, 心里(能没个B数?)要有点数, 不知道的,要去脉脉上问下。可以适当加多点:

      • 一方面是留点砍价的空间
      • 另一方面, 万一HR就答应了呢, 那不就美滋滋。
      • 对于已经谈拢的薪酬待遇,一定要 HR 以发邮件 offer 的形式来确认。
      • 你前面拿的一些肉鸡公司的offer 可以作为加价的筹码, 不要扔了。

补充

  • 持续学习

    • 面试官还会看你平时的积累, 比如技术博客有没有常更新, 写的都是啥,持续学习很重要。
  • 关注下产品

    • 前端是有义务参与产品的设计的。
  • 关注下业务

    • 阿里的leader 会考察你对产品和业务的了解情况。
    • 技术特别牛逼的,自行斟酌。
    • 要有某个突出的点(或技术, 或产品, 或对业务的理解)。

最后

大概就是这些吧, 有需要面试的朋友可以参考一下,文中的题目, 答案我还在整理, 后面会慢慢写出来。 希望对能给有需要的朋友带来一些帮助 :)

END.

如果觉得内容有帮助可以关注下我的公众号 「 前端e进阶 」,一起学习成长

03-05 14:05