双非暑期字节前端二面压力面
这次出的题明显比一面小得多,而面试官给的反馈、正向肯定明显比一面少得多,因此心态也要跟着变化。加粗是没提前准备好的:
- 二面一般是领导面,所以开局反问职位(团队需求方,用人经理)
- 自我介绍,说一面说过的优势
- 介绍实习公司业务、个人工作
- 介绍实习技术栈(Monorepo+React+MobX)
- MobX 如何在 React 工作流里工作(忘了 Observable 这个东西了,说的 Effect 可以监听 MobX 状态)
- MobX 如何融入本人工作流(说了从呼出图片编辑器到用户修改再到同步 CRDT 状态的链路、本人遇到的文本框组件不更新的问题,说得没太方便面试官理解,就多追问了一些关于流程的具体问题)
- React 单向数据流(不知道,就问的是不是跟函数组件和 hook 有关系)
- React 父子组件、状态、渲染机制有什么关系(说了父组件定义状态透传给子组件、组件渲染的时机机制)
- 父组件触发子组件重新渲染有没有什么优化空间(React.memo)
- MobX 状态会带来性能问题吗(我实习没遇到过性能问题很正常吧,这时候就开始尝试和面试官鬼扯什么 Effect 监听 MobX 状态触发组件重新渲染什么的)
- 能不能解释你理解的 MobX 的工作机制(我不理解,开始反问,那算了不问这个了)
- MobX 解决了你的工作流的什么问题(全局依赖注入,说了实习期间在 Monorepo 从相对路径 import 到鸭子类型、依赖倒置的重构过程)
- 项目用了 Zustand,解释一下选用 MobX 和 Zustand 有什么技术上的考量(二者都托管对象提供方法,其中 Zustand 更轻量一些,本来想再提 Redux 的没提上)
- 用过的 React hook(state ref reducer effect,说了前三个是怎么实现的)
- 就上面那些吗(你这么问我得再补了,还有 context 和 memo,signal 没了解透彻没敢说)
- 听过 callback 吗(真没听过,团队之前没用过吗?真没听说团队用过)
- 上次实习挺注重交互、重视对排版的理解是吧,来撕个排版题练练手
- 手撕:layout 里面左右两个子区域,左边占 200px,右边占剩下全部(第一个方案是父相子绝,第二个方案是 flex 横向布局加设置 flex 属性)
- 手撕:二叉树找值最大的节点(前序遍历+打擂台)
- 手撕:闭包实现私有变量,暴露一个 getter 和 setter 方法
- 说一下对闭包的理解(作用域、捕获列表、作用域链)
- 第三道题调方法是 new 出来的,我大意了没看见,看来实现得不太对(我先说了一下 new 运算符干了些什么,然后正准备把普通函数重写成构造函数,好了我懂你意思你不用往下写了)
- 面试官解释构造函数里也可以 return,这时构造函数会优先采用 return 出来的值(然后我补充 `String()` 这种函数可以利用 `new.target` 元属性针对前面有没有用 new 运算符作出不同的行为,面试官说确实会利用相关的机制)
- 反问(业务、对人力资源的期望(技术能力、逻辑与沟通能力)、有哪些需要改进的地方(有一定自驱力,但要更努力地系统学习基础知识)、什么时候出结果(下周肯定出了))
- 可实习时间、实习期
面试官透露进面试的同学 50% 是技术过关的,至于各个候选人情况如何呢?各有优势。这个可以理解,毕竟头部大厂的岗位竞争会很激烈。我只管进横向,剩下的交给命运罢
查看13道真题和解析