前端实习生-字节面试面经二面
紧接着来字节的二面了,这次字节的二面对于我来说还是比较难的,大家想回顾一面可以传送回我上一个博文:传送门。
这次面试官的提问策略和上一次一面不太一样,不是按固定好的题目来的,基本是你讲到了什么,他就会往你的话头去追问你的掌握程度,所以建议如果不是很熟悉的技术的话就千万别写在简历上或者和其他技术一起囫囵讲出来,这样很容易被追问不熟悉的原理和使用,导致印象不好。由于很多都是涉及我个人使用过的技术的一些自我理解,所以这边不会贴出很多我的回答,可能会和大家所想的有些出入,比如mongo数据库中结构的灵活性的意义,就其实可能会有很多方面的答案,话不多说,先说一下这次面试的过程
- 爬虫
- mongo
- graphql
- apollo
- redux
- npm run build
- babel
- 视频组件
- 其他
这次的二面复习了很多JS相关的东西,但是实际上这次除了一个Redux原理外,基本没有问到关于JS的知识。上来面试官首先是询问我所在的城市,是否写了毕设,我说完毕设的阶段和所使用的技术之后,对我项目中关于爬虫和预测的部分比较感兴趣,所以询问了我下面这几个问题
爬虫与预测
- 你如果要做一个爬虫,你的策略是怎样的
- 反扒策略你可以说出哪些
- 有一个使用React制作的非SSR网页,你会怎么选择爬取方案
- 描述一下你做预测损失函数的过程
爬虫的话事实上我也只是半知半解,在简历上也没有描述这部分,所以还是这句话,不是很熟悉的技术的话就千万别写在简历上或者和其他技术一起囫囵讲出来。 这几个问题我回答了第1、2、4个,第三个实在是不太清楚没有实际去做过,紧接着面试官注意到我的描述中说到了mongo,询问了我关于mongo的一些问题
mongo
- 为什么不选用mysql
- nosql是什么
- mongo数据库中结构的灵活性的意义
这部分如果你简历中写的是mysql,可能问的就是和mongo的区别了,这个 具体看你的技术栈是怎样的,或者你干脆不说用过数据库,面试官也不会硬问这块的
mongo问完后,面试官选择询问了我的毕设中提到的grapgql和apollo,这部分就有点偏难了,有个关于节点id的题目我甚至没有听懂,所以这段基本就是按我日常使用的情况来进行回答,值得注意的是二面面试官和一面面试官一样,询问了grapgql的意义,我和一面一样回答了与Restful的区别,可以在不修改后端接口的情况下避免因后端接口拓展导致的response无用参数过多,但是二面面试官对这个回答不太满意,认为Restful也可以做到这一点,所以这个题目应该是妥妥的没答出来
Graphql与Apollo
- graphql的意义
- apollo中缓存的原理
- apollo中,对graphql的节点处理中会绑定节点id,这里面的原理是什么(这个不太明白)
紧接着面试官询问了我关于Redux的实现,这个很快就答完了,后面就是询问关于我在公司干的事情了,他让我举例子我在公司封装过哪些组件,我提到了视频播放组件,于是他问了我以下几个问题
视频组件
- 直播的流和点播的流有什么区别
- 你怎么做到直播点播切换的
- 清晰度切换的时候经常会出现直播质量波动,你会怎么处理
第三个答了预加载和隐藏一个DOM的方法,这仨题目就比较偏了,因为是我自己的的项目中的问题,所以不具有普遍性,大家简单看一下就可以了,后面还问了一部分关于webpack的和自我学习有关的题目
npm run build
里,webpack和create-react-app都做了些什么- 你是怎么部署你自己的代码的
- babel与webpack的区别
- 你怎么在计算机协会教前端的
- 你怎么自学的
npm run build
做了什么这种问题在一开始是完全没有想到会询问的,所以只说了几个比如loader,混淆,babel的东西,部署讲了github的webhooks
这次相对来说还是比较难的,很多都是涉及个人理解的问题,比起一面的话二面更加考察实习生的综合素质,面试官依旧的很和善,希望我的面经能够对大家的面试有所帮助