Skip to content
On this page

面试方式:电话面试 + 远程线上笔试

面试内容: 首先,自我介绍,然后开始面试

  1. Vue3/Vue2
  • diff 算法的变动
  • 响应式实现的变动( proxy 和 defineProperty 区别)
  • 响应式变量声明方式的变更
  1. 原生 js 相关:浏览器性能监测、原生事件实现一些业务场景、Promise/Async/Await 业务场景题
  2. React:
  • 性能优化的手段
  • Class 组件和 Function Hooks 组件的区别
  • 常用的 hooks 的拓展
  • React Diff 算法
  • React Fiber
  • React 18 的特性(讲了 createRoot/createBlockingRoot 在开启 Concurrency Mode 上的区别、合成事件绑定 Dom 的变更、useTransition 、useDeferredValue 、useState 的批量更新)
  1. 由于简历里面写了NodeJS Koa ,问了下 用在哪里,在那个项目上落地了 ,是否了解中间件的洋葱模型(必考题),出了一个中间件的执行顺序题,深挖怎么实现一个中间件

二面:

  1. Event Loop 相关的问题:考察浏览器原理和 js中的执行网红题都是必要掌握,一定要掌握
  2. 实现函数的链式调用:没什么难的,向 prototype 里添加方法,最终 return this 参考这个:https://cloud.tencent.com/developer/article/1754050?from=article.detail.1753744
  3. 实现一个版本比较方法: 参考答案:http://www.jsphp.net/js/show-9-101-1.html

整体来说 面试官问的比较场景的前端考题:难度不是特别大,但面试官问的比较发散 ,一些东西比如 Fiber 、Diff 如果讲的较深较发散,面试官会打断然后切下一个问题

二面主要是问一下项目方面的东西,比如最近比较亮眼的项目,从背景、解决方案、推进其他方跟进、最终效果方面依次说就行 会深入问有没有更合适的方案,为什么。 如果回答有,需要从几个方面讲述了一下市面上现有的方案的缺陷和现场问题的复杂度情况

最后一个是一个场景题,让从自己的角度考虑一下定位和解决方案

三面是业务线 leader 面,聊工作经历、项目经验、未来规划、学习方法 四面 HR 面,和三面差不太多内容,问了一下期望薪资 整体面试的感觉:

会深入问这些源码底层之类的东西 有 websoket 实现原理 如果自己实现虚拟 dom 会怎么做 之类的 一面是做过哪些项目,使用的技术点,技术栈在项目中有哪些运用,然后根据部分运用提出了一些并发场景的解决方案; 二面先问了怎么成为程序员的,然后是项目,就是最主要的项目。里面的难点技术点,如何解决的。因为项目体量较小所以问了最近有没有了解一些新的技术点,如何学习的。然后是未来的职业规划。 三面回问一些场景题,包括个人的职业规划,领导喜欢有规划的下属,有明确的学习计划

Released under the MIT License.