Published on

我的前端面试经验分享

Authors
  • avatar
    Name
    hpoenixf
    Twitter

背景

我最近一个月面试了 20 来个公司,其中包括大家熟悉的 BAT、今日头条、京东、网易、大疆、OPPO,以及 Shopee、招商金科、有赞等不错的公司,最终收获了六个 offer。

在这里,我分享一些面试经历和心得,希望对大家有帮助。我不会逐一列出各个公司具体的问题,而是总结面试流程、可能遇到的问题,以及我的部分解答。


面试流程

如果你时间紧张或是在职,大部分大公司支持第一轮电话面试。例如,腾讯和阿里的前两轮基本都是电话面试。另外,现在流行专场招聘,可以一天内完成所有面试。

面试的常规流程通常是:

组员面 → 组长面 → 总监面 → HR 面


组员面

组员面通常由与你级别相近的人进行,考察的内容相对基础。这个环节主要考察你的基本功,涉及的范围包括 CSS、HTML 等前端基础知识。

自我介绍

几乎所有面试都会要求自我介绍,因此需要提前准备好。我一般会简单介绍自己的毕业时间、工作经历和主要负责的项目。

HTML

  • HTML5 新增了哪些特性?
  • HTML 语义化的意义是什么?
  • 如何优化 SEO?
  • HTML5 的新标签有哪些?
  • <!DOCTYPE> 的作用是什么?

CSS

  • 常见的居中方案(大厂几乎必问)。
  • flex 布局的使用方法。
  • 简单了解 grid 布局。

JavaScript

  • 闭包、原型、this 的原理。
  • setTimeout 的机制。
  • 手写常见函数,如 debouncenewObject.createPromisebind
  • 设计模式和继承的不同实现。

HTTP

HTTP 相关知识的重要性在大厂面试中往往高于 CSS:

  • HTTPS 的工作原理。
  • 浏览器缓存。
  • 跨域问题和解决方案。
  • 网络安全。
  • HTTP 状态码的含义及使用场景。

项目

  • 介绍你觉得自己做得最好的项目。
  • 是否有其他个人项目或开源作品? 我通常会提到我使用 RxJS 和 React 开发的 MAC 地址输入框,以及基于 React 的图片裁剪组件。

其他

  • 从页面输入 URL 到页面展示的全过程。
  • 性能优化(如使用 REM 布局实现移动端自适应)。
  • Vue 源码,双向绑定的原理。
  • 离职原因。
  • 团队协作管理经验。
  • 算法基础:排序、背包问题、二叉树等。
  • PWA 和小程序的开发经验。

组长面

组长面更多考察你对前端开发之外的知识,以及对项目和职业的思考能力。以下是一些常见问题:

常见问题

  1. 项目部署流程。
  2. 如何监控项目运行状态。
  3. 错误处理机制。
  4. 对 Node.js 的理解。
  5. 职业规划。

反问环节

组长面通常会给你机会反问问题,这是面试考察的一部分。建议不要问待遇等 HR 会回答的问题,可以尝试以下问题:

  • 项目团队规模是多少?
  • 项目需要解决什么问题?
  • 项目的前景如何?
  • 如果我加入,主要负责什么?
  • 前端在项目中扮演什么样的角色?
  • 您理想中的候选人是什么样的?
  • 为什么我要选择你们公司?

总监面

总监面通常不会深入考察代码细节,更多是围绕你的自我介绍、项目经验以及对未来的规划展开对话。可以期待一个更像聊天的交流:

  • 你为什么选择做前端?
  • 你对前端的理解是什么?
  • 未来的职业规划是什么?

HR 面

HR 面更倾向于了解你对公司和团队的兴趣,工作期望等,内容通常轻松,但可以主动提问以下问题:

  • 加班时间及相关制度。
  • 公司或部门的离职率。
  • 公积金、社保的基数和比例。
  • 公司或部门的未来规划。
  • 公司相比其他竞争者的优势是什么?

总结

与其一个个背面试题,猜测面试官可能会问什么问题,不如多思考以下问题:

  • 大公司需要什么样的人才?
  • 面试官想要招什么样的人?

通过这些内容,希望你能找到自己的不足,并去补充和完善已有能力,充分展现自己的优势。最后,祝愿每一位面试的同行都能找到理想的工作!