返回 blog
2021年1月29日
2 分钟阅读

阿里一面

笔试题

  1. 实现一个函数,把数组对应的项改造成一个对象,尽可能使用ES6的方法,尽可能少添加变量
/*
* 实例:
* processFn(data); // 返回 {name: 张三, age: 1, from: '内外'}
*/
const data = [{key: 'name', value: '张三'},{key: 'age', value: 1}, {key: 'from',value: '内外'}]
function processFn(data) {
	/* 代码实现 */
}
  1. 实现一个方法,可将多个函数方法按从左到右的方式组合运行。如: 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打包慢的?

你在以往的项目中遇到的最大的困难是什么,如何解决的?

我的问题问完了,我说说我的反馈

你有什么问题问我吗