讨论/求职面试/2021届秋招哈啰出行前端面经(一面)/
2021届秋招哈啰出行前端面经(一面)

面试地点:微信视频
面试

问题

1. 简单做个自我介绍吧。

面试官您好……

2. 看到了你的项目经验,简单介绍一下你的项目吧。

[介绍项目]

3. 你的项目中用到了 React,用的是那个版本呢?

用的 React 16.5(记错了,应该是 16.8)

4. React 16.5 已经有 Hooks 了吗?

没有(场面一度十分尴尬,React 16.8.0 是第一个支持Hook 的版本)。

5. Hooks 和 class 有哪些优势?

有时 class 里不用的生命周期函数中会出现相同的逻辑,使用 Hooks 使得代码更易维护。

6. 你用过 Hooks 的哪些方法?哪些函数?

用过 useEffect

7. useEffect 有什么特点?

使用 useEffect 可以模拟一些生命周期函数,比如 componentDidMountcomponentDidUpdatecomponentWillUnmount

8. react 的生命周期有哪些?

挂载时有 componentDidMount,更新的时候有 componentDidUpdateshouldcomponentUpdate,卸载的时候有 componentWillUnmount 等。

9. componentWillReceiveProps() 你了解过吗?

没有了解过。后来查文档说 componentWillReceiveProps() 不太常用。

10. 当 Redux 中的数据发生变化时,哪几个生命周期会发生变化?或者解释一下 Redux 的运行机制?

乱答了一通……答得不好。其中谈到了 redux 主要用于复杂的数据流,面试官问:

11. 复杂的数据流是指什么样的?

给自己挖了个坑,没太说明白,原因在于不了解 Redux 的应用场景,即为什么要使用 Redux。这篇文章 讲得挺好的,意思就是当我们的状态分布在多个组件中,跟踪这些组件的状态变得繁琐时,就可以使用 Redux 来统一管理了。

12. webpack 平时做过哪些配置?

平时会设置 loader 和 plugin,用过插件 commonChunks 等。

13. plugin 和 loader 有什么区别?

loader 相当于一个模块转化器,比如将 less 文件转化为 css 文件,plugin 支持一些拓展的插件,比如 HTMLWebpackplugin,commonChunks 等。

14. loader 如何将 less 文件转化为 css 文件?

这里没搞清楚是问具体配置还是问原理,结果面试官就换下一个话题了。

(原理和配置待补充)

15. loader 的执行顺序是什么样的?

从右往左、从下往上。

16. 我想配置一个单页应用,如何配置 entry 部分?

entry: {
// 这里写什么
}

17. ES6 了解吗?

let, const, Map, Set, 箭头函数等等。

18. 下面的代码 b 等于什么?

let a = [1, 2, 4]
let b = a.map(v => { v= v*2 })

我先回答了 b = [1, 4, 8](脑子抽了,小学数学都算错),面试官问为什么不是 [2, 4, 8],我说说错了😂

然后又说这样不对,因为箭头右边有个大括号。

其实上面代码中 b 是 [undefined, undefined, undefined],面试官引导该怎么处理才能使 b 为 [2, 4, 8]

答案就是如果箭头右边是打括号,需要在大括号内加一个 return 返回就行了。即下面的代码:

let a = [1, 2, 4]
let b = a.map(v => { v= v*2; return v; })

平时写 map 一直都没用过大括号,面试的时候才明白,我炸了!

19. 了解事件循环吗?

20. 有什么问题?

具体工作地点看自己安排。杭州和上海。

杭州主要负责算法平台的搭建和地图相关。

技术栈是 React。

感受

面试官很和蔼,由于堵车来的较晚,还表示不好意思,面试时的感觉自己较长时间没有面试水平下滑,菜得一批,map 中如果是大括号应该加上 return 都不知道,纠结了半天。总体还是根据简历来提问的,所以一个好的项目至关重要,项目不在于多么宏大,而是自己真正独立做了哪些部分,有收获才是最重要的。

13
共 4 个回复

可以的

1

秋招哦

1

可以转载到我的公众号脑洞前端么,会著名出处哦

面试的什么级别呀