秋招面经合集前端大作战!
经历了将近一个月的选offer的焦心过程,最终决定去拼多多了,现在决定回馈一波牛友们,就是靠着牛友们的分享拿到了还不错的offer,当然不能和985的大佬们比,小菜鸡自己觉得秋招的结果还算是满意的了。
offer情况:拼多多、华为(小sp)、地平线(sp)、360企业安全、滴滴(只给北京的offer,再三确认,杭州没有hc了,直接拒了 )。
秋招面试的公司:BAT、TWD、有赞,以及其他拿到offer的4家公司。按照我面试的时间顺序开始记录面经吧。
阿里(内推,有两次面试,一个是在阿里的班导给我找了阿里的前端负责人直接面的,是非正式的面试,就是帮我评估实力的)
阿里非正式面试(秋招第一家面试,7.15号面的,在西溪园区)
1、讲一下继承,有点紧张,讲了继承方法的名字,着重问了原型链和构造函数,组合构造函数,寄生组合构造函数,讲了代码级别上的实现。
2、说到继承,又问了我class了解不了解,我说了解一下,问了我class继承,这个没有答上来。
3、讲了一下项目,better-scoll的实现原理,为什么要用better-scoll,能不能用原生的css实现这个滚动效果,这个没有回答上来,被评价css基础薄弱
4、问了vue的双向绑定实现的原理,我回答出来了,但是讲的不够流畅,还是基础不够扎实
5、问了webpack的理解
6、html5的新特性和css3的新特性,html5讲了webstorage,webscoket,然后就问了我客户端的存储有哪些,讲了webstorage的localstorage、sessionstorage、globalstorage(html5用localstorage被取代掉了),还有cookie,问了我cookie和localstorage的区别,cookie还没讲完,又出了个场景,,浏览一个网站,选择条件的存储,用cookie还是localstorage,我答了localstorage,问了理解,我说是因为cookie要发送到服务器,,面试官说主要原因是过期时间
7、问了webpack的理解
8、vue父子组件通信的实现机理,,这个刚开始讲错了,,然后才讲对的,问了我如果有多层的父子组件,用什么通信,知道vue里面有这个东西,但是实现想不起来了名字了,就讲了如果自己来设计这个功能的实现思路。
被评价:原生js基础不错,和浏览器交互有一定理解,css基础薄弱,社区的东西了解的不多,代码深度也还不够,,目前的水平和简历想以前端开发进阿里,几乎不太可能,但是拿到实习offer还是没问题,问我愿意不愿意来实习,我拒绝了,因为实验室不让实习
当然啦,在我眼里,自己全世界最牛逼,不接受反驳,,哈哈哈哈,开玩笑啦,,还是要给自己打打气的,我觉得我还可以再抢救一下,各位牛友们,加油加油!(也是当时的心情了,真是无知得可爱呀,之前一直在看书,而且觉得自己都似乎会了,回过头来看,这次面试,让我看到了大厂要求和自己实力的差距,我觉得帮了我很多,让我对面试的深度,和问什么,都有了进一步的理解)
阿里正式内推面试
阿里一面(8月13号)
1、问项目,第一个项目vue做的web app,整体大概的讲了一下,问了遇到的最大的问题是什么
2、问了vue组件之间的通信
3、问了webpack配置的一些东西,
4、问项目,问我的业务建模项目,这个是杭电、阿里、浙大三方合作的项目,然后讲了一下,问了个开放式问题,如果leader对建模的思想和你完全不一样,怎么半
5、讲一下页面请求的整个过程,讲了下,讲得非常的细节,讲到了浏览器收到响应报文,,就被打乱了,说不用讲了
6、问了es6,问我那些比较熟悉,讲了let、const、箭头函数、promise一些名词,然后说那你说一下Generator吧,我大致讲了一下,,这块觉得讲的不好,主要讲了语法的一些东西,没有讲得很深
7、问我css掌握的怎么样,了解到什么程度了,我就说对各式布局比较熟悉,尤其flex布局,还讲了css 继承、优先级、层叠啥的,还讲了一些css用到的一些技能,margin-left负值这些
差不多面了1个小时吧,大部分都是开放式的问题,问你了解不了解,然后你讲了,再继续深入问,总体来说,我觉得问的不深,比较简单。
阿里二面(8月18号)
当时没有做记录,能想起来的不多了,其实,阿里的二面是我当时面到当时,觉得回答的最流畅的一面了,真的是信心满满的有三面的,不过也是二面挂
只能记得问我es6了解不?我整本书都讲了一下。
面试结束的适合,,我问面试官我表现怎么样,有希望进行下一环节嘛,面试官说我基本还不错,不过项目开发经验太少了,而且社区的东西了解较少,也没有源码阅读经验。。。估计就是因为这些挂了/
华为(7月18号吧,我们是参加了比赛,参加了华为的优招)
一面(业务面)
只聊了项目,我花了项目的框架图吧,就是讲了一下,然后我想讲一下技术的东西,也不需要,评价我思路很清晰,就过了,真的很easy~
二面
有点小波折,刚开始面了***软件园,但是面试官一拿到我的简历就说,我们这边不需要前端呀,你怎么报名了我们的部门,我当时心里一紧,马上镇定,我说,功课没有做到位,是我的失误,不管这不影响面试的,您先面我,如果觉得我不错,再把我安利给其他的部门,我也是今天才知道cloud bu前端需求蛮大的,您到时候可以安利我过去。面试官忙说,,面试还是要面的。
1、进程和线程的区别
2、多线程,其实前端没有多线程,js是单线程的,我就讲了浏览器的多线程这块
3、问了编译原理,我不会,本科也没有学过,面试官表示计算机专业没有学过这个很不应该,我表示,我本科是财经院校的计算机专业,有些课程做了一些删减了。
其实,感觉面试官真的不想要我,结束的时候,我说,感觉你们真的不需要前端诶,,要不,您到时候就把我安利给cloud bu吧,,面试官感觉一下子放松下来了,说,对对对,我们确实不需要前端,,这样子吧,我把你的简历拿到他们看一下,如果ok的话,你再面一次他们部门好了,然后我等了一会,又面了一次cloud bu,问的问题都比较简单的,就是项目,然后为何选择华为,很轻松的通过了。。
tips:我自己觉得自己是一个做事非常主动出击的人,百度、华为的面试都体现了这点,,甚至我360面试的时候,hr问了我面了哪些其他公司,我就讲了这些公司的面试坎坷趣事,尤其百度的乌龙,hr说觉得我做事很主动,这点很好,他蛮欣赏我的做事风格的,我一直以为是自己脸皮厚呢,当时心里觉得蛮高校的。反正,,秋招主动点,不要怕丢人。
百度(内推,8月16号面的,一天面完3面,都是视频面试)
一面
1、问我有没有用过 git,尴尬的回答没有
2、问我有没有和后端联调过,比如跨域,回答了跨域很多方法
3、问了我闭包,回答了一下,问我闭包怎么实现模块化,这里也回答了一下,回答着回答 着想起了 es6 的模块化,觉得有异曲同工之妙,就一起讲了
4、vue,问了我钩子函数吧,created 和 mounted 的区别,讲了后,问了我$refs 是用***嘛 的,写在 mounted 还是 created 里面,我回答了写在 mounted,并说明了原因,
5、问了 Object.assign 的用法,6、vue.computed 和 watch 了解不了解
7、npm run dev 是干嘛的
8、平时通过什么学习,用过 w3c school 嘛,了解 MDN(一个前端学习网站,老高推荐 过)
9、一面没有问任何项目!!!
二面
1、先问我一面问了啥,说一面评价很好,但是没有写问题,😓
2、问了我异步,让我讲方法,问了我 thunk,让我讲怎么实现的,问了我函数式编程
3、问了我排序,我讲了快排
4、二面讲了好久项目,阿里的项目(业务建模方法,)和前端的项目都讲了,阿里的项目 他本来想问的,思考了一下,说自己也不懂,然后放弃了
5、当天面试了 3 场,只能想起这些了 三面
1、讲了项目
2、讲了平时在实验室干嘛
3、问了哪里人,愿意离开浙江嘛(哎,不知道是不是被他发现了我撒谎)
4、问了阿里和百度都给我 offer,怎么选择 ,我纠结了很久,当时还很城市,想着阿里在杭州,一定去阿里的,最后弱弱的回答,看做的事情,哎,应该说很喜欢百度,百度是一家以技术驱动的公司,毫不犹豫去百度的
4、貌似就是聊天,然后结束了,问过了没,让我等消息,我问如果没过会有通知嘛,面试官开心了笑了起来,说不知道,然后问了要了身份证号,我不知道这个是什么操作,但是 还是给了
tips:我后面看牛客网上说,很多人是第三面(主管面直接通过不过,也有人没有被要身份证号的,所以当时觉得有offer的希望还比较大,后面据说8月20号发提前批offer,我没有收到,8月21号给hr发邮件,然后hr说没有收到offer就是没过,我说我被要了身份证号,hr说,被要了身份证号一般是过了的,让我再去问问三面面试官,然后三面面试官告诉我,没过,我问原因,说是综合原因,这个插曲搞得人蛮不爽的)
腾讯(内推,8月20几号吧,忘记了)
一面(1个小时10分钟)
1、讲一下项目,我讲了自己用vue仿饿了吗做的那个项目
2、vue底层了解吗,我说双向数据绑定嘛,反正他说了好几个名字,我说那我讲一下双向数据绑定的实现吧
3、问钩子函数了解嘛,讲一下有哪几个钩子函数,我说知道点,讲了一下,beforeDestroy和destroyed,这个单词忘记了,问了哪几个钩子函数不能访问到this,我说destroyed吧,问了beforeCreated可以访问到嘛?思考了答了不可以,,今天实践一下,发现都可以访问到this,气
4、路由是用router做的对吧,是的,XX用过嘛,没听懂,让我用原生js怎么实现路由,大致讲了一下
5、webpack了解嘛,用了哪些配置,如果让你合并两个vue,你自己怎么写,好的,问题都不是很理解
6、模块化怎么实现,我讲了闭包
7、es6了解嘛,我说蛮熟悉了,讲了一些名字,让我讲一下异步,讲了回调、promise、generator、async,说了各自的特点和原理,这块真的非常熟悉,问我那个场景要用generator,而不适合用async,不断提示我,我还是没有答出来,他说是数据交换,我表示恍然大悟
8、既然说到了异步,问我怎么实现的,js是单线程,我觉得这里答得很好,讲了浏览器的渲染机制,线程之间如何协作,完成异步,并拿settimeout和ajax请求举例说明,然后结束了,他说,嗯,这块看样子有了解呀
9、http协议了解吗?有深入了解嘛?虚虚的回答,就了解请求报文、响应报文、状态码这些,让我讲讲有那些状态码,我讲了10几个吧,中间有2个讲错了,他提醒我了,我很不好意思地说,之前这块很熟,现在有些忘了,他说不错了,能讲出这么多了
10、http2.0和1.0的区别了解嘛?哇,这个不太了解,只知道一个长连接,他现场教学了一下,和我解释了http2.0的链路复用,让我要去了解了解,这个很重要
11、问我性能优化,这个也讲的很细,方法讲了很多,主要讲的是页面优化和文件上的优化,问我cdn知道嘛,也回答出来啦
12、问我http协议的缓存了解嘛,大致回答了一下
13、问我还有什么是我比较擅长没有问到的嘛,然后我说我基础比较扎实,es5的大部分知识和es6的知识都比较熟悉,说了函数式编程、节流、柯里化,就说了名词,然后问我继承了解嘛,我说非常熟悉,然后讲了一下,讲了7种继承,包括了class继承,问我了new的过程,也讲出来了
14、突然说css3没问呀,问我了css3了解嘛,我讲了transform、transition,问了transform的优化原理,讲了一下硬件加速,问了我实际使用的弊端,我没回答出来,说是元素宽度为奇数,字体模糊,还解释了一下这个现象,说到了动画,这里我还讲requestAnamalFrame,并讲了它的机制
15、差不多了,和我介绍了它的部门,做啥的,就结束了
二面(20分钟不到就结束了,挂是意料之中)
二面没啥好写的,刚开始是似乎是一个hr问问题,都是问哪里人,怎么平衡实验室的事情和自己的事情,介意来深圳嘛,这些问题,然后她说自己有事,待会找人给我打电话,再继续面试,然后变成了一个技术面
1、node.js会嘛,linux会嘛,数据库了解嘛,都不会,只有数据库略知皮毛
2、web安全了解嘛,怎么保证安全,哎,这块只知道一些些
3、压缩算法有哪些知道嘛,不知道
4、挂了呗~~
腾讯(秋招,10月中旬)
面试官拿到我的简历,觉得我的背景适合做产品经理,问我考虑转岗嘛,我思考了一下,拒绝了,我之前在阿里做过一个项目,校企合作的那种,关于业务建模的,和前端无关,那个项目我们发了2篇论文,ccf b类和ccf c类(本人一作),腾讯一面面试官感兴趣,我讲了半个小时吧,然后只问了一个前端问题,输入网址发生了什么,这个问题我比较擅长熟悉,讲得很深讲了20分钟左右,然后面试官似乎蛮满意的,开始告诉我他是微信事业群的,跳一跳是他做的,我当时就非常崇拜,在酒店房间面试的,身子一下子就坐正了,就聊得很愉快,,,不过结果是挂了,哈哈哈哈。
有赞(一面 8月中旬左右,剩下的面试是8月20几号的)
5、vuex 的理解
6、实现一个元素水平垂直居中
7、盒模型(IE 和标准的)
有赞一面(电话面,1个小时)
1、问项目,我首先讲了,业务建模项目,这个是杭电、阿里、浙大三方合作的 项目,讲了一下做了什么,自己的角色是什么
2、又讲了我 vue 做的 web app,整体大概的讲了一下
3、问我滚动效果的实现,用原生 js 实现
4、vue 的生命周期函数5、vuex 的理解
6、实现一个元素水平垂直居中
7、盒模型(IE 和标准的)
8、js 的类型判断,讲了好几种,区别、原理、使用场景都说了
9、问了闭包,问了闭包的 this 指向谁,我觉得这个问法有问题,纠正了他一 下,说 this 是在函数运行的时候才确定的
10、问了跨域,我讲了很多种方法,问了 jsonp 熟悉不熟悉,我说很熟悉,讲 了一下,然后其他的几种方法也讲了一下,没讲完,被打断了,说可以了可以 了。
有赞二面(现场面):
1、先做了 5 道题目
(1)cdn 的选择题 (2)函数、作用域、闭包的看代码写输出题 (3)选择器优先级排序(4)promise 看代码写输出(5)setTimeout 结合闭包和函数,说实现的功能,并写优化 每一题讲一下思路,和为什么
又给我电脑写了道编程题,把 http 请求转换为对象的
然后开始问问题,
1、webpack 用了哪些配置,讲了入口出口和 loader
2、动画了解嘛?js 的动画和 css 的动画区别,transition 和 requestAnimalFrame 讲了一下,问了我哪类动画性能更好,为什么
3、前端优化
4、vue 组件通信 有赞三面(现场面)
(1) 觉得你们和阿里合作的项目真的对阿里有价值嘛,价值在哪里
(2) 未来规划
(3) 为什么做前端 (4) 为什么考杭电的研究生
(5) 读研和本科比怎么样
不管我说什么,他都在笑,我问为什么你都在笑,我讲话这么好笑嘛,评价我,有着因为无知才有的天真,学生思维,一看就是象牙塔的孩子,不了解 外面真实的世界,,而且一定要让我承认我们阿里的项目没有价值,我说,那照你这个说法,就是高校研究的东西都没有价值了,他说,他确实是这样子认为的,,有赞我最后悔的事情,就是三面主管面,应该怼回去的!!!我一个学生,学生思维怎么了,难道还应该像个社会人嘛???反正非常的不爽,二面的技术官对面试官印象很好,温文儒雅。。。三面,呵呵,一生黑,后来也是挂了我,哼,更加一生黑,给我offer我还能不这么生气一点///
网易(8月26吧)
没有拿到网易的offer是我这个秋招最遗憾的事情,我一直很希望自己能够留在杭州,而且我读研期间好友(师姐)就在网易,在我对工作的幻想中,就是去网易,每天和她一起上下班,然后租房住在一起,周末一起上天入地,但是,天不遂人愿,最终还是没留在杭州,起初,只投杭州的公司,后来网易挂了,真的万念俱灰,,看了半个月的剧,觉得不知道自己还能去哪里了,那时候我还不想出省,京东、美团的笔试都直接不做的,,劝诫各位19年秋招的朋友,鬼知道秋招会发生什么事情,千万不要给自己限制地域,先拿offer,不去也可以用来和心仪的公司谈价格的呀,而且如果杭州的offer给25万,上海给55万,你就说自己去不去吧,什么都不要说太早,我本人就是大型真香现场!!!
一面
1、outline和border的区别
2、css单位 rem和em 这个我不会rem,我就讲了em和%,讲了继承的时候,继承的是计算后的值,而不是关系
3、画一下作用域链
4、项目有关的,如何实现一个订单模块
5、Vue的通信
6、有嵌套的Div,怎么确定鼠标点击的是那个div
7、队列和栈的区别,我讲了先进先出、先进后出,说了怎么用数组实现的
二面
1、事件委托、事件冒泡、以及有那些添加事件的方式,以及区别
2、怎么获取元素,有哪几种方法,如何通过选择器获取元素,
3、CSS了解嘛?我就讲了名词,继承、优先级、层叠、布局,垂直居中,他让我讲优先级,我讲了样式的优先级和选择器的优先级,
4、Http协议怎么理解?我说就是用来通信的,我了解http请求报文的组成和常用的请求头,以及相应报文和常用的头,还有http1.x和http2.0的很多差异,结果他就不问了。
5、问了单线程,说js怎么实现单线程的,讲了各个线程怎么协作,宏任务队列和微任务队列,问了宏任务队列有哪些,微任务有那些
6、问我怎么学习,我说看书,看博客,异步这块书上没有呀,一直问我怎么学习的,我就说我百度呀。。
7、问了我CCF C类和B类有什么区别,C类的全称是啥,我也不知掉。
8、问了我链表怎么实现、我说用对象,对象的属性left和right模拟指针,问我为什么想到用对象,我就讲了链表的一些特点
三面
1、最近印象比较深刻的app
2、阿里的项目
3、其他想不起来了
先写这些吧,本菇凉现在有点累,剩下的再慢慢更新~~~