【面试】Moego一面

896 阅读3分钟

前言

笔试时间:2024-1-20 周六

面试时间:2024-1-25 周四

面试题

  1. 自我介绍 5mins

  2. 项目经历介绍 40mins

    这么久面试以来,这位面试官是最特别的,他似乎真的对你的项目很感兴趣,我猜他会代入你的角色去思考这个项目如何进行,面试官会刨根问底问你这个地方如何实现的,遇到困难团队又是如何沟通的,真的会问的非常细致,这是我在别的公司面试从没见过的现象

  3. 笔试题回顾 20mins

    第一题是实现模板编译(html转AST)

     现场提问:
     1.状态机是什么?
     2.如果我需要你处理className类名怎么做? 在处理标签名的函数中补充逻辑
    

    第二题是实现webpack底层算法的依赖循环构建(算法:处理依赖循环)

     现场提问:
     1.说一下你的思路
    
  4. 综合场景题 30mins

    用React实现瀑布流布局,在header中有个input框,搜索返回的卡片数据在body的瀑布流中三栏渲染。

    1. input的监听事件是 onChange 这里提问了事件机制、合成事件、事件委托的绑定位置
    2. onChange需要防抖,手写了debounce函数
    3. onChange = debounce( (event) => {}, 1000 ) 我直接这样写,event能拿到是合成事件,
        但是解构的写法拿不到 onChange = debounce( ({ target: { value } }) => {}, 1000 )
        我不知道为什么
    4. 还是上面这个写法,里面有个setData(),会导致rerender,然后debounce会被重新创建导致节流失效
        不过复现需要在某个契机,我不知道是什么契机?
        让我写个react版本的debounce,我说要用useMemo/useCallback,然后不会写,到这里放弃了。
    
  5. 反问 5mins

    1. 您对中级工程师的定位是怎样的?怎么样去突破?
        中级工程师需要在某个细化的领域沉淀,要有自己的突出亮点,比如你做的音视频方向。
        在前两三年可以多接触一些,然后就必须要在某个细化的领域内有所成就了。
        (通过这里可以看出,其实中级工程师一般对标3-5年经验)
    2. 
    

总计时长:100mins

总结

这是一次失败的面试经历,瀑布流布局是我曾实现过的业务,但是放在React中就不会了,这说明我对React的实践经验还严重不足

笔试题写的也非常痛苦,但最后写出来后也收益良多,这也表示我们其实很有必要看一看偏底层的实现方法

面试过程中,面试官的情绪和反馈都非常积极,你能够明显的感受到一种正向的能量场,无论是我的hr还是面试官,他们的情绪都非常饱满。这也是为什么我非常期望能够加入到这个团队。

以后面试的过程中,或许也能从对方的状态管中窥豹,以此来推测团队中的氛围。