背景
工作快满两年经验, 开始投一投大厂试一试自己有几斤几两. 两个星期前(10月中旬), 投了3家大厂; 简历被字节捞起. 虽然没面上了, 但是也总结了些自身的不足,下面👇分享下我的遇到的面试题.
1. 如何在class组件里实现useFetch?
这个问题是针对我简历写的使用自定义hooks封装了自己的一套useFetch; 这里我的回答是使用class高阶组件, 属性代理或反向继承去增强props(render props)
2.http2
这里我答了http2在应用层和传输层增加了二进制分帧层,使用二进制编码进行传输; 并引入了头信息压缩机制, 之后随之问了我如何解决头信息阻塞的问题(不懂)
3. webpack中loader和plugin,以及针对文件资源是如何选择,是选用loader还是选用plugin
loader和pugin的差异根据网上八股文回答了, 至于选用loader还是plugin, 我的回答是选用loader 原因是loader里的path配置资源的输出路径, publicpath配置资源的引用路径, 更加方便.
4. react中触发状态更新的函数
我回答了: setState、useState、useReducer、forceUpdate、ReactDOM.render, 随后问了我 useReducer的实现(我不会)与及问了useContext和它们之间的适用场景并在项目上如何选型?;
我回答是 useReducer适用于一个动作触发改变多个状态值的时候(举了滚动滚动条的例子), useContext使用于共享组件之间的公共状态; 随后问了如何解决context造成的其他组件重复渲染的问题
5. 手写节流防抖函数
6. 箭头函数和匿名函数this指向问题
7. 如何实现虚拟列表(针对我简历写中的实现表格组件的虚拟列表)
8. Typescript新特性
9. 算法题: 找出多叉树中每一层级的最后一个节点并输出
10. 一道闭包的编码题,看代码说出代码的问题(具体是啥我给忘了☕️☕️)
第一次面试大厂过程很紧张, 虽然失败了, 但还是要继续加油啊, 共勉☕️☕️