百度提前批前端二面
先是自我介绍,学长态度很和蔼,应该之前是字节的,对字节内部平台很了解,因为我在字节实习过五个月,先问我一些字节的TCE、打包部署这些设计方案,我也仅仅是有所了解,只是简单说了一下平时的使用情况,只是浅层次的,学长对我说的补充了一些,算是开场白吧,然后就是正式面试了。
因为我的简历写了很多东西,React、webpack、TS、node这些,学长让我挑一个比较有信息的方面他深入问,我思考了一会,就说是JS基础,直接打开lodash官网,选择了两个函数看着文档写源码。
1. _.before(n, func)
有一些情况没注意到,在学长的提醒下完善成功:
const lodash_before = (n, func) => {
let count = 0;
let res;
return function() {
if (count < n) {
count++;
res = func.apply(this, arguments);
}
return res;
}
}
2. _.shuffle()
这个函数比较复杂,写的话可能要十五分钟,学长让我把思路说出来,没什么问题。
3. 说一下动态规划相关的术语。
4. leetcode一道hard题.(因为我打开编辑器学长看到我刷leetcode题了,问了一下相关情况,选了一道我没写过的题)
说一下思路,就是动态规划解法
5. 说一下你熟悉的React方面的知识
6. React中类组件和函数组件有什么差异呢?
7. 说一下`react-redux`暴露出了哪两个参数。(其实就是mapStateToProps和mapStateToDispatch,一时间有点蒙,尴尬~)
8. TS的一道题,接口Q的基础上,实现W类型,要求从接口Q中去除b:
```
interface Q {
a: number;
b: string;
}
type W = ...;
```
9. webpack依赖是如何打包的?(其实主要是是依赖关系图,围绕这个说了五分钟多吧,学长表示不错~)
10. 然后就是问答环节,这边三大框架都有用到,问了一下三大框架的取舍,学长问答的很专业
二面大多数时间都在写代码,跟一面有所不同,不得不所学长真的超级nice,不会的也没有可以为难,一步一步引导,给学长点个赞~