百度秋招前端3轮面经


今天继续带来一篇2021年百度秋招的面经。

一面

  • 有了解过react吗?没有。他说不是学,是了解。然后问了学习一个新的东西是怎么进行学习的(官方文档, github 优秀的开源库)
  • CSS水平垂直居中的方式( flex , position+margin , position+translate )
  • CSS定位( static 、 relative 、 absolute 、 fixed 、 sticky )
  • position绝对定位是相对于谁定位的?相对于 static 定位以外的第一个父元素进行绝对定位
  • fixed 是相对于什么去定位的?相对于浏览器窗口进行定位
  • 有做过移动端的应用吗?问移动端适配问题,说了 bootstrap 、 media ,然后他问了 rem 。rem 说了 62.5% ,后面他觉得我说的不对,然后给我解释了一下,但是具体我没听明白
  • display:none 和 visibility:hidden 的区别
  • 手写题:数组去重,用了四种方式( set , Array.from , map , indexOf ),同时,也可以用 filter 、 includes 来解决
  • v-show和v-if(各自的区别以及使用的场景)
  • 手写:用 vue 写一个登录组件,面试官其实要考验你封装组件的能力
  • JavaScript闭包(闭包是什么,一般如何产生闭包以及其使用场景)这道题有个很完美的回答,面试官表示赞同
  • 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 很强大,有时间可以去了解一下。

二面

  • 项目中的 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年半多一点)

三面

  • 项目是基于一个什么样的背景去开发的?(实习项目+实验室项目)
  • 在项目中你都抽离了哪些组件呢?(考察实际项目经验是否真实,是否有很多自己的独立思考)
  • 接口文档使用的数据格式(json)
  • 在你做过的几个项目中,有什么技术难点?(技术难点是什么,使用了什么技术来解决这个问题,最终达到了什么效果)
  • 实验室项目和实际实习的项目你觉得最大的区别是什么?(个人开发 vs 团队协作)
  • 在你的大学四年里,遇到过最大的一个挑战是什么?(最好跟自己所面试的岗位是相关的哦~)
  • 你平常是怎么学习前端相关知识的(早期怎么学习、现在研究新东西怎么学习)
  • 有看过什么前端的书吗(考察知识深度,是否爱看书)
  • 对于你的第一份工作,你比较看重的是什么?(学习机会、工作机会等等,扩展开来讲)
  • 你觉得自己身上的优点和缺点是什么?(把缺点说成优点,然后再补充几个新的优点)
  • 为什么不选择考研呢?(结合自身情况去回答,但是也不要让面试官感觉你说的不真实)
  • 目前有面试过其他公司吗?在什么流程?(结合自身情况回答,尽量让面试官觉得这个时候他还有录取你的机会,集邮大佬的话路过~)

面试官点评

从这么多校招面经看的出来,校招面试整体套路都差不多,一面、二面主要侧重基础(包括HTML、CSS、JavaScript、网络、数据结构、工程化等),三面通常是软素质相关的,比如多人协作、个人学习方法、对行业对未来的思考等等。

最近在准备校招的同学,可以针对性的准备下相关问题。

最后

《前端面试题宝典》经过一年多的迭代,现已推出 小程序 和 电脑版刷题网站 (https://fe.ecool.fun/),欢迎大家使用~ 同时,我们还推出了面试辅导的增值服务,可以为大家提供 “简历指导” 和 “模拟面试” 服务,感兴趣的同学可以联系小助手(微信号:interview-fe)进行报名。

作者:Jacqueline712

链接:https://www.nowcoder.com/discuss/741063