百度前端岗位面经(offer)

收到百度前端offer,写个面筋,回馈社区。

可能不太全,顺序也不记得了。
一面大都能答上,但是面试官提问的时候会一直深入,质疑你,让我面完之后觉得过的可能性不是太大。
二面的话整体感觉好多了,面完之后,看面试官的态度知道基本稳了。
三面很糟糕,很多时候让我写代码,我在那卡很久气氛比较尴尬。花了接近两个小时,也没问多少问题,本以为是要挂了。

一面(部分,有些不记得了,因为细节问题被怼了很多次)

  1. 用最多的方式实现三栏布局?
    答:1. float实现 2. position: absolute实现 3. flex布局实现
  2. float布局对后续元素的影响?
    答:浮动元素脱离文档流,如果后续元素为浮动元素,则依此排列;如果使文本节点,则围绕浮动元素;否则,会被浮动元素覆盖,布局忽略浮动元素。
  3. 知道怎么清除浮动吗?
    答:用的最多的是:after{content:"";display:block;clear: both}
  4. 知道里面的原理吗?
    答:使用clear: both之后,会把浮动元素的边界拉下来到标准流,从而把对应标准流的位置撑开。
  5. 用尽可能多的方式实现数组去重。
    答:1. Array.from(new Set(arr)) 2. for循环实现
  6. 数组reduce方法知道吗?(知道)好,那你用reduce方法能不能实现这个去重?
    答: 写出来了,但是有细节问题,被批评了。
  7. deBounce防抖懂吗?(回答不懂)那我大概和你说一下原理,blabla,现在懂了吗?(懂了)那你自己实现一个这样的函数把。
    答: 代码不详细写出来,反正也写出来了。
  8. 函数里面用到的setTimeout,你能说说它异步执行的原理吗。
    答:把浏览器的js线程,定时器线程,事件处理线程,http请求线程之间任务分配。 浏览器的队列机制说了一遍。
  9. 说到队列,那你知道队列里面的优先级问题吗?
    答:说明了一下微任务(promise)和宏任务(xhr请求, setTimeout, setInterval), 当前同步操作完成后优先执行微任务队列中任务。
    ......

二面(部分,有些不记得了,三轮面试体验最好,感觉面试官很和蔼)

  1. 了解http协议吗,知道哪些header
    答:host/origin/referer/cookie/content-type/content-length/cookie/accept/accept-encoding/***-control 说了这些,然后每个都大概解释了什么作用
  2. 刚有提到http缓存,能详细说说吗?
    答:把强缓存、协商缓存说了一遍,然后对应的header头的配置***-control/if-modified-since/if-none-match/last-modified/etag介绍了一下。
  3. 看你有个人网站用了https,能说说https与http的区别吗?
    答:这个内容在学习的时候很深入,所以所有的细节都讲清楚了,从ssl握手,证书验证,加密算法几方面都有讲。
  4. 了解数据结构吗(有自学过),那你试着用栈实现一个列队看看?
    答:磨了一分钟,直接说了没思路。 跳过。
  5. 了解哪些es6新特性?
    答:模板字符串,let和const,class声明类,promise,对象数组解构赋值。 说的时候还介绍了特点。
  6. 没有用箭头函数吗?(一下子没想到。)说说箭头函数吧。
    答:箭头函数中this指向的是外层的作用域。
  7. 那通过对象.方法调用箭头函数,里面的this指向什么?
    答:想了一下,确实没想过这个场景,说不知道。
  8. 你这个项目用的express,知道express中间件吗?
    答:这里就说了一下app.use(url, fn, next)作为中间件处理响应的请求。
  9. 了解xss吗?
    答:大概说了一下xss代码注入。
  10. 中间还有介绍项目的过程,就简单的说了一下,因为都是个人的项目,所以也说的比较简单。
    ......

三面(最惨,全程怼)

  1. 你先用原生js封装一个ajax方法吧,我出去一下。
    答:自己在那写,写了post和get方法。面试官回来看我还在写:我看看,写的这么详细,不用写了,你这不浪费时间嘛,来给我讲讲。 然后给他讲。
  2. promise知道吗?(知道)干嘛用的?(解决回调地狱代码难以维护的问题)好,那你来实现一个吧?
    答:硬着头皮写,面试官看我一直卡着写不出来说:你可以先把promise本身的用法写一下,这样不就好整理思路了嘛。 然后我就按他说的做,还是写不出来。就在那琢磨,面试官也不叫停,十多分钟,挺尴尬的。最后说算了不用写了。
  3. 现在我有一个对象urls = {url1: "这里是具体url地址", url2: ....}, 我想用urls.url1('POST', callback)的方式来发请求,你怎么做?
    答:一脸懵逼。思考了三分钟左右,问他,这个你给的是对象,对象.属性不是方法啊。 他说:是方法还用让你来做吗?我不管你怎么做,实现就好了!
    然后,硬着头皮遍历属性然后重写属性为方法。然后看他态度,应该是符合了他的要求。
  4. 会用vue,了解过原理吗?双向绑定是怎么做的?
    答:实际上其实也是单向数据流,只是使用了oninput的事件。
  5. 那说说看vue的单向绑定吧。
    答:这个的话就得从Dep, Watcher, Observer以及Vue本身这些类来说了。
  6. 行行行,那你把你说的这些写一下把,实现一个简单的给我看看。
    答:在这之前有看源码,所以基本上写出来了。给他讲了讲里面的一些关系。
  7. 这样,我页面中有个树结构,画了个图,问我Vue怎么封装组件,怎么传数据到对应的节点?(图如下)
    A
    B
    C
    • D
    • E
      答:想了半天没明白他什么意思,然后问他,也一直听不懂他到底想要做什么。磨了大概十分钟,还是交流明白。最后他说了个,类似于目录结构,瞬间明白了。就准备开始写了,遍历获取到的数据,生成ul,li标签,添加到页面中。(写了不到半分钟,他就叫停:算了算了,你不要写了,太浪费时间了,讲思路把)
  8. 另外:三面我在写代码的过程中,他穿插问了我基本情况,老家哪的、非科班为什么转、腾讯阿里有offer吗...
#面经##百度##前端工程师##秋招#
全部评论
楼主啥时候面的,哪个地区的
点赞 回复
分享
发布于 2018-10-19 19:11
楼主是在哪里面试的?
点赞 回复
分享
发布于 2018-10-19 19:12
联想
校招火热招聘中
官网直投
楼主什么时候收到的短信或者电话啊
点赞 回复
分享
发布于 2018-10-19 19:34
楼主深度很够啊😂😂,我也面的前端,但是二面没过,还是自身水平不太够啊
点赞 回复
分享
发布于 2018-10-19 19:43
校招还是实习?
点赞 回复
分享
发布于 2019-11-13 23:06
我三面聊了聊家常就挂了
点赞 回复
分享
发布于 2019-11-26 22:36

相关推荐

6 121 评论
分享
牛客网
牛客企业服务