笔试题
- 实现一个函数,把数组对应的项改造成一个对象,尽可能使用ES6的方法,尽可能少添加变量
/*
* 实例:
* processFn(data); // 返回 {name: 张三, age: 1, from: '内外'}
*/
const data = [{key: 'name', value: '张三'},{key: 'age', value: 1}, {key: 'from',value: '内外'}]
function processFn(data) {
/* 代码实现 */
}
- 实现一个方法,可将多个函数方法按从左到右的方式组合运行。如: composeFunction(fn1, fn2, fn3, fn4) 等价于 fn4(fn3(fn2(fn1)))
/*
* 示例
* const add = x => x + 1
* const multiply = (x, y) => x * y
* const multiplyAdd = composeFunction(multiply, add)
* multiplyAdd(3,4) // 返回 13
*/
function composeFunction() {
/* 代码实现 */
}
五分钟的自我介绍
js的基本数据类型有哪些?
css水平垂直居中有哪些方式?
你是如何处理跨域的?比如CORS?
介绍一下防抖和节流,以及它们的应用场景?
vue父子通信的方式有哪些?
http常见状态码以及它们对应的意义,比如3**?
我看你简历上有写打包优化,你是怎么优化的?
你有使用过哪些webpack插件,它们的作用是什么?
你是如何对项目整体优化的?
你刚才提到了骨架屏,你有使用过骨架屏吗,你能自己实现一个骨架屏吗?
你知道babel是如何解析ES6的吗?
你知道babel解析出来的代码,比如 includes
方法,解析出来是什么样的吗?
你平时是如何进行状态管理的?
你了解redux吗,它的原理是什么?
你了解context吗,在哪些场景下会用到?你是怎么用的?
你平时React用得比较多的hook是哪些?
你是如何自定义hook的?有哪些比较好的实践?
你了解前端缓存吗?
你是如何进行前端缓存的?
浏览器的缓存机制是什么?
如果我希望当一个文件的内容改变时,替换缓存,在不修改文件uri的情况下,该如何做?
如果一个组件经常被使用到,你是如何打包组件的?
你是如何动态引入组件的?
你有使用ts吗,有什么比较好的实践吗?
ts中,type跟interface有什么区别?
你如何对网页进行优化?
你是如何解决webpack打包慢的?
你在以往的项目中遇到的最大的困难是什么,如何解决的?
我的问题问完了,我说说我的反馈
你有什么问题问我吗