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

一面(40-50min)

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

    先做个自我介绍吧

    介绍一下写的项目

    那我们正式开始吧

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

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

    怎样清除浮动

    rem,em有了解吗

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

    盒模型

    水平居中

    background的值以及作用

    事件冒泡、捕获、委托

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

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

    let,var,const有什么区别

    讲一下闭包吧

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

    你了解箭头函数吗?

    知道深浅拷贝吗?

    讲一下vue的生命周期

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

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

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

    手写一个深拷贝吧?

    能自己实现节流防抖吗?

    那最后写个冒泡吧

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

二面(2h左右)

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

    做个自我介绍吧

    介绍一下项目

    那我们开始吧

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

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

    Q:那用css如何实现?

    A:animation

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

    A:balabalabala

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

    A:可以用:focus实现吗?

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

    A:暂时想不出来了

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

    第二题
    [面经]—百度前端实习一二三面详细面试总结
    刚看到题的想法:这么长,这么复杂!!!凉了
    写了一半放弃,说了下自己的想法。

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

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

    那你能简单说一下flex吗?

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

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

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

    还有些记不太清了qaq

    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

    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:不太清楚

    Q: 原型 原型链

    A:从prototype , __proto__, constructor开扯

    Q: 原型链查找过程

    A:balabala

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

    A:通过hasownproperty

    Q:可以实现一下吗?

    A:那我试一下,,,

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

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

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

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

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

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

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

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

    Q:那如何删除它呢?

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

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

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

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

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

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

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

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

    A:用agruments吗?

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

    A:是一个类数组

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

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

    Q:还有其他方方法吗?

    A:暂时没有了

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

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

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

三面(30-40min)

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

    Q:自我介绍

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

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

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

    A:balabalabala

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

    A:记得是O(nlogn)

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

    A:先说了双重循环

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

    A:O(n方)

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

    A:balabalabalabalabalabalabala

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

    A:balabalabalabalabala

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

    A:重绘:…重排:…

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

    A:balabalabalabala

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

    A: 。。。。。。。。。

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

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

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

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

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

匿名

发表评论

匿名网友