前端面试提问

Published on
24

公司前端离职了,想要招聘一名前端,这是准备的面试提问,记录一下。

1. 候选人自我介绍

通过候选人的自我介绍,了解候选人的基本情况,包括工作经验、项目经验、技术栈等。
针对候选人的介绍内容,记下他相对有深度的点,后续进行提问,以了解候选人的技术掌握程度。

2. 项目经验介绍

让候选人介绍自己的项目,要求对方简单介业务背景、重点介绍项目的技术栈、遇到的难点、具体的解决方案等,以及自己在项目中的角色和贡献。(考察候进人的项目经验、技术栈、解决问题的能力)

3. 基于简历针对性提问

  1. 掌握浏览器,V8的工作机制?挑一两个,给我讲讲吗(讲讲垃圾回收,如何写避免内存泄漏,performance排查手段)

  2. 你简历中写到熟练掌主流端框架技术及原理,我们团队目前的情况是Vue居多我你一些Vue的问题 (Vue3的新特性,Vue2Vue3的区别,Vue的生命周期,Vue的响应式原理,Vue的双向定原理。)

  3. 为什么Vue2中的一些数组和对象操作不会触发视图更新?(考察下候选人对Object.defineProperty的熟悉程度)

  4. 你的简历中提到特长是: 架构设计,延缓屎山;请问你在项目中是如何实践的?(模块化,设计模式,类型系统,规范)

  5. 看到你写了antd是垃圾,怎么说,你是如何看待antd的?(antd的设计,组件库的设计,组件库的使用)如果你来设计一套组件,你会在方面做优化和改进(你有写到css in js,你觉得它和style component 有什区别?你对Tailwind怎么看?有做过Web Components组件吗?)

  6. 你简历上写了参与了antv/g6的开源,主导antv/a8音频可视化,你主要做哪些贡献呢? (我查你gthub只有一个改单词的PR,是没有公开还是不在主分支呢2)

  7. 看你写过vite插件,讲讲vite插件的生命周期,和热更新的机制,开发阶段为什么比webpack快?(可以扩展考考 esm

  8. 看你简历写过rollup插件,讲讲rollup插件的生命周期,它和webpack比有什么优势? (rollup是第一个提出 tree shaking概念的打包器,我考你一个tree shaking的知识点)

  9. 用到npm上库,提交issue但没有被合并,本地临时怎么让其他组员友好的使用到你修复的代码? (考考会不会 patch

  10. 平时热爱输出吗?开源,写文章,或者工作中输出文档?

4. 整点基础问题,看下掌握程度

  1. 解释JavaScript原型链及其工作原理。

  2. 介绍Promise和async/await的区别及应用场景。

  3. 解释Vue中的数据绑定及其实现原理。

  4. 讲述Vue的生命周期方法。

  5. 尽你所能完整的描述一下从输入URL到页面展示的过程这块可考察的点很多,全链路皆可优化,重点间下这条链路中候选人落地过的点以及优化后的效果,考察候选人是否真的有相关优化经验

  6. 考察一些ES6+知识点,PromiseProxy的使用async/await的使用,SetMap的使用,WeakSetWeakMap 的使用(这里考一下什么时候用WeakXXX

  7. 用过哪些设计模式?挑几个常用的详细讲

  8. 讲讲缓存策路何考察:强缓存和协商缓存的区别,缓存的实现方式,更新策略以及优先级;Service WorkerMemory CacheDisk CachePush Cache,扩展可考OPFS等)

  9. 编程题(根据回答,看情况是否需要补充验证)写两个基础题看看积累:

  10. 实现一个sleep函数,可从PromiseGeneratorAsync/Await, 或局限es5回调模式等角度实现(考察一下异步编程的基础)

  11. 写个二分查找或者快排

5. 必要的团队协作相关问题(避免进来搞破坏)

  1. 确保候选人ts不拉跨,要求讲讲用过ts工具类型,你是如何用的?isinferkeyof泛型啥的都熟悉吗?

  2. 版本管理相关,git一些必要的规范和使用(commit 规范stashreset几种模式,revert 摘除中间部位的提交,rebase 压缩摘除重置头部,会不会查 logreflog 等)


Prev Post 通过 Nginx 反向代理加速网站的访问速度
Next Post Tauri 2.0 运行到Android Studio Device error sending request 的问题