前端面经

453 阅读2分钟

一面:比较友好的面试官,其他部门的,能顺着你的思路向下延伸问题,进行更好的发挥,全程面试体验很享受,当场约的第二天二面,就是HR会打好几次电话更改面试时间,包括后续的面试。

  1. 水平垂直居中实现方式

  2. 浏览器缓存机制

  3. 输入URL到页面展示经历了什么

  4. 谈谈 react hooks 优缺点

  5. hooks 为什么不能放在判断条件里

  6. 什么条件下会触发 rerender

  7. 函数防抖节流区别

  8. 监听滚动条滚动应该用哪个(防抖和节流)

  9. 项目性能优化怎么做的,技术难点可以说下

  10. css 定位,鼠标下滑,某个区域的header固定在顶部,有几种实现方式

  11. 手写代码: 实现一个类,接收一个 url,支持 getParamssetParamsremoveParams 实例方法

  12. 手写代码:把一个数尽量分解为大于1和尽可能小的整数相乘,实现方式可以都写出来,递归的话如何实现

    console.log(getMember(80))//[ 2, 2, 2, 2, 5 ]
    console.log(getMember(1))//[ 1 ]
    

二面:发量清晰可见的架构师面,死磕项目,当说完一个话题后,会总结你说的所有点,确认他是否理解了你所说的

  1. 在最近这家公司发版流程是什么样子的,如何做项目管理的,都是集成在效能平台里面了吗?线上版本回退是怎么做的,后端的逻辑是什么,后端项目发版更复杂些,你知道怎么做的吗

  2. 可视化搭建平台的业务是什么?底层是如何实现的,包含哪些模块,你是经历了从0到1了吗?你都写了哪些功能,有什么亮点?对你有哪些成长,如果再让你回顾这个项目,你觉得哪里可以改进

  3. 可视化搭建平台是如何发布上线的

  4. 如何把控代码质量?你们是怎么做的

  5. 一个需求完整的周期是什么样子的

  6. 用例评审都包含什么?冒烟case是研发侧跑还是测试侧跑?

  7. 手写题:实现简单redux,包含以下几个功能

    class Redux {
        // code here
    }
    const { getState, subsrible, once, dispatch } = new Redux(initState, reducers)
      // 取消订阅
      const dissubscrible = subsrible(() => {
        // do something
      })
    

三面:部门负责人面,也是主问项目,了解你做的业务

  1. 询问项目流程,了解业务逻辑
  2. 手写题:查找字符串中第一个非重复字符
    const str = 'hellohe' // 4
    function firstUnique(str) {
        
    }