[面经]---百度前端实习一二三面详细面试总结

一面(40-50min)

一面面试官是个小姐姐,也没有问太难的东西,唯一的遗憾就是没看到一面小姐姐长什么样(ps:她那边没开摄像头)。
好了,步入正题:

  1. 先做个自我介绍吧

  2. 介绍一下写的项目

  3. 那我们正式开始吧

  4. 你了解CSS选择器吗?那他们的优先级呢

  5. 伪元素 伪类有用过吗?什么时候会用到?

  6. 怎样清除浮动

  7. rem,em有了解吗

  8. position定位都了解哪些?区别?使用之后有什么影响呢?

  9. 盒模型

  10. 水平居中

  11. background的值以及作用

  12. 事件冒泡、捕获、委托

  13. 数组的方法,都了解多少?

  14. 如何删除一个 数组最后一个元素

  15. let,var,const有什么区别

  16. 讲一下闭包吧

  17. 你都知道哪些数组方法?如果要删除数组最后一位元素,有哪几种方法?

  18. 你了解箭头函数吗?

  19. 知道深浅拷贝吗?

  20. 讲一下vue的生命周期

  21. v-if 和 v-show 有什么区别?

  22. 知道localstorage和sessionstorage吗?说下区别?

  23. localstorage如何添加,如何删除,如何清空?

  24. 手写一个深拷贝吧?

  25. 能自己实现节流防抖吗?

  26. 那最后写个冒泡吧

觉得一面还是问的挺基础的,基本都回答上来了

二面(2h左右)

面完我人傻了,第一次听说有将近2个小时的面试,结果还发生在了我身上,但是面试官人很好,不会的也会慢慢的引导。

  1. 做个自我介绍吧

  2. 介绍一下项目

  3. 那我们开始吧

  4. 这有两道操作题,先看第一题

    页面上有一个元素和一个按钮,请实现:元素在页面水平居中,点击按钮,元素在1s后,水平从左至右移动100像素,旋转90度,动画维持200ms
    因为看到了要点击按钮动画才,所以开始想着用JS实现,结果发现动画没有过程。

    Q:那用css如何实现?

    A:animation

    Q:animation实现一个动画,具体过程?

    A:balabalabala

    Q:那用css的animation实现动画,是页面刚加载动画就开始了,如何实现点击之后动画才开始的效果呢?

    A:可以用:focus实现吗?

    Q:应该是不行的,有其他方法吗?

    A:暂时想不出来了

    其实这里面试官想得到的是当点击按钮时,用js改变class名来实现。这竟然没有想到,被自己蠢哭

  5. 第二题
    在这里插入图片描述
    刚看到题的想法:这么长,这么复杂!!!凉了
    写了一半放弃,说了下自己的想法。

  6. 回归你问我答环节。怎样实现一个上边自适应下边定高度的布局?

  7. 由于上一个问题回答中提到了flex,开始追问flex。

    那你能简单说一下flex吗?

    flex说了我知道的属性和对应的功能后,追问还有什么?

    然后问 flex:1; 具体内容?

    那用flex怎样让元素垂直排列呢?

    还有些记不太清了qaq

  8. Q:你知道怎么适配移动端吗?

    A:用媒体查询多一点

    Q:那媒体查询是怎么用的呢?

    A:balabalabalabala

    Q:那我现在要适配iPhone 5 应该怎样写?

    A:balabalabala

    Q:那了解em,rem吗?

    A:了解,em是相对于父级字体大小,rem是相对于html根元素字体大小,balabala

    Q:那要是我现在要适配不同屏幕大小的设备,应该在怎样修改html根元素的字体大小?

    A:我觉得应该可以和媒体查询配合使用。

    Q:那具体怎么实现呢?

    A:balabala

    Q:viewport是干什么的?

    A:balabala

    Q:可以介绍下里面都有什么属性吗?

    A:balabala

    Q:那我要是适配手机,里面应该怎么设置?

    A:balabala

  9. Q:了解webpack吗?

    A:配置过简单的webpack,

    Q:那说一下你是如何配置的?

    A:balabalabala,配置过简单的loader、plugins

    Q:那你知道webpack默认会识别哪些文件呢?

    A:不太清楚,,

    Q:那你知道webpack性能优化吗?

    A:balabala

    Q:有用过vue-router吗?说一下内部内部实现原理?

    A:hash history,,,

    Q:那history内部是怎样实现路由跳转、后退前进的?

    A:history.push, history.replace,forward,back,go==。 都是将url入栈的操作,如果push会入栈,然后返回栈顶url,然后页面加载栈顶url,每个操作都是加载栈顶url。

    Q:那如何监听路由改变呢?

    A:我在vue中用过keep-alive,keep-alive有两个生命周期钩子函数,actived和deactived,分别是**当前路由执行,和离开放开路由执行。

    Q:那不用框架什么的怎样实现路由的监听?

    A:我知道hash通过hashchange,

    Q:那history是如何实现的呢?

    A:不太清楚

  10. Q: 原型 原型链

    A:从prototype , __proto__, constructor开扯

    Q: 原型链查找过程

    A:balabala

    Q:怎么判断我要查找的元素在哪一层?

    A:通过hasownproperty

    Q:可以实现一下吗?

    A:那我试一下,,,

  11. Q:聊一下项目吧(此时心在想那应该要结束了吧)

    Q:我看你有个公司外包项目,是一个人写的吗?上线了没?有什么难点吗?

    A:说了难点和如何解决的

    Q:追问,那你为什么不用localstorage?

    A:我觉得表达数据量大的话应该会考虑用

    Q:那你说一下localstorage和sessionstrage区别吧?

    A:localstorage存储时间长。。。。等等

    Q:那localstorage存储时间长是有多长呢?

    Q:那如何删除它呢?

    Q:我看你还有一个购物商城,难点?怎么解决的呢?

  12. (然而并没有结束)简单介绍下Http

  13. Q:git 用过吗?如何给远程仓库上传文件呢?
    A:balabala
    Q: 那如何将远程主机的最新内容拉到本地?

    Q:那从本地到远程主机呢?

  14. Q:了解Promise吗?Promise是干什么的?

    Q:如何用promise发送多个网络请求

  15. Q:写一个函数:参数数量不定,每个参数都是数组,在传入所有数组中实现去重?

    A:先想到的是把所有数组拼接一起,然后再去重,但面试官说这样返回的是一个数组。而她想要的结果是在元素中实现。

    A:用agruments吗?

    Q:那你说一下agruments是一个数组吗?

    A:是一个类数组

    Q:那怎样就成一个数组了

    A:我常用[…agruments]让他变成一个数组

    Q:还有其他方方法吗?

    A:暂时没有了

    Q:那我们还是回到刚才那个问题吧?用agruments怎么实现呢?

    A:挣扎了半天,最后只说了思想

暂时只能想起这些,后面想起来会补充

三面(30-40min)

这一面其实运气也挺好的,本来说是视频面。但在自我介绍的时候面试官说,你那边网络好像不太好,听不太清我说话,然后就改为电话面试了(心里暗自窃喜)。
三面技术问的少

  1. Q:自我介绍

  2. Q:问了参加比赛是一个什么样的项目,有什么难点,有什么亮点,如何实现?

  3. Q:那自己写的项目有什么难点?

  4. Q:数据结构与算法学过吧?讲一下快排的思想?

    A:balabalabala

    Q:那快排的事件复杂度是多少呢?

    A:记得是O(nlogn)

    Q:我这里有两个数组,如何找出他们相同的元素?

    A:先说了双重循环

    Q:那这个时间复杂度是多少呢?

    A:O(n方)

  5. Q:浏览器中从输入url到页面渲染出来的整个过程?

    A:balabalabalabalabalabalabala

    Q:那具体浏览器是如何对页面进行渲染的?

    A:balabalabalabalabala

    Q:那你了解重绘与重排吗?

    A:重绘:…重排:…

    Q:那他们是如何引发的呢?

    A:balabalabalabala

    Q:如何减少重绘与重拍?

    A: 。。。。。。。。。

  6. 然后就开始软技术,问了几个问题就结束了。

三面结束后的第二天下午hr电话就打来了

聊了聊入职时间,什么时候发offer,以及工资等情况。

努力回忆,目前就记得这么多。

总的来说这次面试问的东西很多,但都不太难。