一面
- 你知道哪些HTTP协议的状态码
- 浏览器缓存机制强缓存协商缓存
- promise有几种状态
- promise有什么优缺点
- 为什么要使用 redux进行状态管理,你在
哪些业务中使用了 redux。 - 不使用状态管理的话,还可以通过什么方
式去实现组件的状态共享。 - Context 及use Context的使用。
- react中你用过哪些 hooks
- useEffect有哪些参数,如何使用
- useEffect去实现类组件的生命周期方法
- Hooks执行顺序问题(不要在条件语句里
使用 hooks) - webpack你用过哪些插件,介绍一下各
个插件 - 将数组中的对象[{a:1},{b:2},…]合
并成{a:1,b:2,…… - 实现函数 removeElement(ar, target)
将数组中的 target元素全部移除,要使
用原地算法.
二面
- 主要是业务面试,你在开发中遇到了哪些问题,你是怎么查找原因的,最后用了什么方式去解决的;
- 涉及了 webpack打包效率提升、打包结果优化等
- 对前端行业的一些看法,为啥做前端
- 编程题:给定数组a=[[2,6,-1],[1,5],[7,7,[2,3]]….],实现一个函数sum(arr)===32//2+6-1+1+5+7+7+2+3
- 编程题:已提供一个方法 function add(a,b, callback){},它接收三个参数,功能是对前两个参数进行求和,第三个参数是一个回调参数,可以从回调函数中拿到a+b的值,即add('3,"5′,result => console. log(result)})会输出8,实现一个sum()函数,调用示例: sum(‘1’, ‘2’, ‘3’,‘4’).then (result=>{console. log( result)}),sum函数接收任意个参数,sum函数体内要使用前面提到的add()来进行求和,sum函数最终要返回的是一个 Promise,在sum函数后使用.then()可以拿到计算结果。