百度秋招提前批前端一二三面面经(已意向书)
一、百度一面2021.09.01(70min)
1. 面试问题
一面的面试官是个超级和蔼的小帅哥!面试官真的超面善,全程都在引导,遇到不会的,我提出了疑惑,他之后就给我解答所涉及到的知识点以及解决方案。
下面附上一面的面经:
有了解过
react
吗?没有。他说不是学,是了解。然后问了学习一个新的东西是怎么进行学习的(官方文档,github
优秀的开源库)水平垂直居中的方式(
flex
,position+margin
,position+translate
)position
的值(static
、relative
、absolute
、fixed
、sticky
)文章传送门👉你可能对position和z-index有一些误解position
的绝对定位是相对于什么去定位的?相对于static
定位以外的第一个父元素进行绝对定位fixed
是相对于什么去定位的?相对于浏览器窗口进行定位有做过移动端的应用吗?问适配问题,说了
bootstrap
、media
,然后他问了rem
。rem
说了62.5%
,后面他觉得我说的不对,然后给我解释了一下,但是具体我没听明白display:none
和visivility:hidden
的区别(没答对,在写代码的时候面试官让我现场展示一下看下两者的区别,后面其实是为了要跟我说不管是大大小小的事,都要去尝试,尝试了就会知道结果。太励志了!)
手写题:数组去重,用了四种方式(
set
,Array.from
,map
,indexOf
),同时,也可以用filter
、includes
来解决v-show
和v-if
(各自的区别以及使用的场景)手写:用
vue
写一个登录组件,面试官其实要考验你封装组件的能力闭包(闭包是什么,一般如何产生闭包以及其使用场景)这道题有个很完美的回答,面试官表示赞同
this(
this
是什么以及使用场景)=> 只能在当前作用域中使用你说你的项目后端是用
nodejs
写的,那你主要使用nodejs
来干嘛?还问了node
如何监听端口等等问题你的数据库表是怎么建的(sequelize)
封装组件,动态绑定问题,说了
props
和emit
的传递webpack
是一个什么样的东西,可以用来干嘛(模块打包工具,vue-cli
和create-react-app
)webpack
问题:假设现在有svg
等各种图片,这种图片还有各种大小限制。那webpack
如何处理呢?用file-loader
和url-loader
webpack
问题:假设现在的代码很强大,有各种promise
、ES6
等多种很新的语法,那如果想要在ie
上可以看到,怎么处理?babel-polyfill
。然后问了用的是webpack
最新的版本吗,我说用的4
。他说webpack5
很强大,有时间可以去了解一下。
2. 反问环节
反问问题:
在刚刚与面试官的交流过程中,发现我还有蛮多的知识满盲点。想问下面试官对我的学习上有什么建议呢?
3. 面试官的建议
面试官给的几点建议:
- 细节问题要注意
- 多看一些技术博客,前端要学的东西很多,遇到不懂的,要多多尝试
- 封装组件时:要考虑学习成本、时间成本,不要一有新的组件就马上自己封装
4. 题外话
面试官打开我的博客发现 404
, xdjmm
在做超链接的时候一定要检查好简历,太尴尬了。。。后面检查发现我的链接有两行,没有全部选中做超链接跳转555~
反问的时候面试官还问我说,看我是2022届的,是明年6月份才可以去工作嘛?balabala……当下就大概确定说一面应该是过了。
还有一个要注意的点是,面试过程中,每问到一个知识点,都尝试着去给面试官举出相关的例子,他就会觉得你是有实际用过的,对这个知识点是掌握的比较透彻的。
当天晚上10点多 hr
就来约二面了~
二、百度二面2021.09.02(55min)
1. 面试问题
进来一位面试官,但是他不开摄像头。声音非常好听是真的,播音主持范~
下面附上二面的面经:
项目中的
nodejs
用在一个什么样的角色是否有了解过中间层?(其实就是让你说中间件的作用)
高并发怎么处理(答得不三不四的)
设计一个组件需要考虑什么(颗粒度尽可能小、数据动态传递等等)
假设让你设计一个主题组件(theme),这种组件相对来说比较全局,要你可以随时进行改变,你怎么设计呢~
协商缓存(
modified
和if-modified-since
,Etag
和if-none-match
)这里面试官一开始是设计了一个场景,然后我没理解。后面他让我说一下协商缓存,说完之后让我再把这个套进那个场景,就解释通了。
axios
封装限制连接池(异步问题,串行和并行,async
和await
,结合leetcode 933
作答)平常自己是否有设计过一些指令,比如
v-bind
,或者说现在就想让你设计一个v-if
,怎么设计(联系双向绑定原理v-model进行解答)是否了解过移动端开发,我刚开始答了我的项目有做适配,结果他说不是这个,是跨端开发……然后我答了
flutter
和android
,写过一点xml
,flutter
没有写过,就只说听过然后他也就没有继续问了前端安全 →
xss
和csrf
,问我有没有实际模拟过攻击……(这一块主要答前端安全是什么,攻击者如何攻击,然后我们又如何预防攻击)vuex(用于做状态管理,
localStorage
和sessionStorage
,state
、mutation
和action
)你学习前端多久了?(1年半多一点)
2. 反问环节
反问问题:
问面试官对我学习上的建议
然后还问了平常的一些学习方法,如何提高自己的知识深度和广度
3. 面试官的建议
面试官给的几点建议:
- 面试官说可以去了解一些设计模式
- 多做,多写,多练,代码会有一个不断重构的过程,慢慢地就会有所进步
- 实战中遇到问题,去解决问题,解决完可以再看书籍,发现很多知识点就都一目了然了
4. 题外话
面试官看着我不太懂了,他总会给我解释各种各样的场景让我去理解并回答出来,真的是特别细心的在引导
然后面试官说整体面试感觉还不错,还问了大概什么时候可以去实习
刚面试完 10min
后 hr
就来约三面时间了,约了当天晚上 9
点
三、2021.09.01百度三面(20min)
1. 面试问题
因为那会有点晚了,大概晚上9点多,所以说的特别快,面试的时间也不是很长,主要就是一些基础的问题,跟职业规划之类相关的。
下面附上百度的三面面经:
- 项目是基于一个什么样的背景去开发的?(实习项目+实验室项目)
- 在项目中你都抽离了哪些组件呢?(考察实际项目经验是否真实,是否有很多自己的独立思考)
- 接口文档使用的数据格式(json)
- 在你做过的几个项目中,有什么技术难点?(技术难点是什么,使用了什么技术来解决这个问题,最终达到了什么效果)
- 实验室项目和实际实习的项目你觉得最大的区别是什么?(个人开发 vs 团队协作)
- 在你的大学四年里,遇到过最大的一个挑战是什么?(最好跟自己所面试的岗位是相关的哦~)
- 你平常是怎么学习前端相关知识的(早期怎么学习、现在研究新东西怎么学习)
- 有看过什么前端的书吗(考察知识深度,是否爱看书)
- 对于你的第一份工作,你比较看重的是什么?(学习机会、工作机会等等,扩展开来讲)
- 你觉得自己身上的优点和缺点是什么?(把缺点说成优点,然后再补充几个新的优点)
- 为什么不选择考研呢?(结合自身情况去回答,但是也不要让面试官感觉你说的不真实)
- 目前有面试过其他公司吗?在什么流程?(结合自身情况回答,尽量让面试官觉得这个时候他还有录取你的机会,集邮大佬的话路过~)
2. 反问环节
- 部门的业务以及技术栈
- 学习上的一些建议
3. 题外话
结束后面试官说等还要跟一二面面试官商量一下,然后等 hr
通知。等隔天微信问了下 hr
,他说过了~
四、结束语
从一面到收到意向书一共花了9天的时间,可能我比较晚投递,所以总体来说面试流程走的还是比较快的~
相较于其他企业来说,百度的面试体验还是非常不错的,很值得投递~