08ec23a67956d00b814d793b64274f30
2018 阿里、腾讯、头条、网易游戏、美团、知乎等春招实习生前端面试经验

经过二十多天的面试,面了九家公司,十几次面试,前一段时间几乎每天都有,最多一天面了三次……终于算是告一段落了,拿到了深信服和网易游戏的offer,因为每次面试完我都认真总结了相关问题,所以这次把我遇到的面试问题汇总一下发出来,我希望大家可以看出一些高频考点,不过不是为了单纯的应付面试,而是这些被多次问到的问题真的很重要,能够正确理解它们对前端的学习会有很大的帮助。这次分享第一部分我会放出我的面试题,第二部分我会放出我自己从网上总结的相关问题的梳理,是以思维导图图片的形式整理的,思维导图源文件我也放到Github上了,大家可以文末自取~~

头条一面(视频面)

我人生中第一面试是学长帮忙内推的今日头条,视频面试了三个小时,简直跟跑马拉松一样,基础前端知识问答一小时半,写代码一小时半,面试完之后我得出的唯一结论就是我比面试官肾好,因为他中途上了三次厕所,我只上了一次……我先说下,这次面试的内容我没有记录,因为问的确实简单,问答部分除了“哪些方法没有事件冒泡”这个问题之外,我基本都回答上来了,反正自我感觉很良好233,写了两道题最后也写出来了,面完面试官还夸我基础还行……结果第二天邮件发过来是很遗憾……我也是一脸懵逼,不过我觉得应该是第一次面试太紧张,那两道编程题比较简单,但是我写的时间太长了……反正现在回忆起来都是泪

阿里一面(电话面)

经过第一次头条的难受经历,我听到阿里HR说是电话面试,很激动,终于不用写代码啦哈哈,结果HR最后来了一句到时候会给你发一个在线编程的文件,你打开在线写代码……我晕,还是得写……不过后来到了面试的时候,那个面试官捣鼓了半天,发现这个他给我发过来的在线编程文件他自己也不会用,然后就尴尬的说要不我们跳过这个环节吧……以下是一面的面试题:

  • 1.自我介绍
  • 2.问最近做过哪些项目,项目中遇到哪些问题?怎么解决的?
  • 3.你用到了Flex,请问flex怎么设置垂直水平居中?
  • 4.css有哪些垂直水平居中方式?
  • 5.css选择器有哪些?选择器的优先级?
  • 6.position的值有哪些?
  • 7.只允许使用css,让一个页面原有dom不可见(考察CSS属性以及结构化思维,考官说有多种解决方法)
  • 8.浏览器高级特性有了解吗?(service worker)
  • 9.浏览器CSS Hack手段有哪些?
  • 10.为什么浏览器需要同源策略?
  • 11.浏览器跨域的几种方式?
  • 12.浏览器性能怎么优化?(从多个方向上去答)
  • 13.JS基本数据类型有哪些?
  • 14.怎样判断一个数组是数组?
  • 15.怎么用JS实现一个队列?
  • 16.描述出任意一个排序算法?
  • 17.Vue怎么实现双向绑定的?
  • 18.说出你觉得自己身上最优秀的能力?
  • 19.说出你未来的规划?
  • 20.你最近有没有什么想要学习的技术?
  • 21.你有什么又问我的?(问了面试官的学习方法和学习习惯)

阿里二面(电话面)

说下一面我觉得自己回答的还行,结果好久没接到二面电话,感觉自己已经凉凉的时候,一面之后13天突然打来二面的电话,面试官问我有没有时间稍微聊一下,然后就面了大概38分钟左右,我觉得问的也不是很难吧,虽然问了一些Vue的实现原理,不过我之前也恰好研究过,所以面完还是自我感觉良好,不过第二天面试状态就变成已回绝……难受,唉看来还是得继续加油

  • 1.简单介绍一下自己,为什么选择做前端?
  • 2.说下你所在的EPI实验室和CTG工作室是干什么的?
  • 3.介绍下你最近的项目?
  • 4.如何让子类继承父类的方法与属性?
  • 5.两道this指向问题
  • 6.CSS属性选择器和伪类选择器的优先级?
  • 7.说下你ES6、7中用到哪些东西?
  • 8.Vue是如何实现双向绑定的?看过Vue源码吗?
  • 9.Vue中的路由你使用的哪种模式?如何与后台沟通路由?
  • 10.怎么发送一个跨域的POST请求?

网易游戏一面(电话面)

说实话我觉得我网易一面回答的不太好,面试官一直在问我做的项目,有的项目由于做的时间太长我都有点忘了……所以当时面完我就没报啥希望了,不过这次面试居然后来过了,感觉面试绝对是个玄学

  • 1.最近做过哪些项目?介绍一下
  • 2.注册登录流程有了解过吗?前端做注册登录流程详细描述一下?
  • 3.为什么cookie不安全?token怎么生成的?
  • 4.jpg格式和png格式怎么区别?gif呢?什么情况下分别选择?
  • 5.做过哪些插件?怎么实现的?
  • 6.用Vue怎么实现一个百度下拉框?
  • 7.JQuery的bind()和on()方法的区别?
  • 8.只允许使用css,让一个页面原有dom不可见(问了和阿里一模一样的问题)

网易游戏二面(电话面)

面完一面5天之后给我打来了二面电话,二面也是一直在问我项目,还问了我的学习方法,可能是他问的每个问题我都回答的比较详细吧,面完之后面试官说他对我印象不错,问我什么时候可以过去,介绍了一下他们部门,大部分时间都在聊项目中的事,所以下面我就只放和项目无关的问题

  • 1.从URL到页面呈现发生了什么?
  • 2.HTTP响应头组成结构?
  • 3.你平时是怎么学习前端的?
  • 4.讲讲Webpack,除了Webpack还使用过什么?Webpack和Gulp的区别是什么?
  • 5.讲讲你最复杂的项目?遇到的问题?
  • 6.移动端兼容性考虑过哪些?
  • 7.怎么处理跨域的?

网易三面(电话面)

是部门的技术主管面的,主要上来问了我平时的代码习惯,看过哪些文档,学习过哪些封装的技巧,然后问了我有哪些除了写代码之外的爱好,我说我大一学过一年设计,本来想成为一名光荣的UI设计师的,但是后来发现设计师太苦逼了,不停得改,然后就跳前端坑了,技术主管听完呵呵一笑……然后就介绍了下他们的日常工作与福利,过了几天HR联系我小小的面了一下,就发offer了

酷家乐一面(电话面)

投简历之前确实不知道这个公司,不过我真的觉得这个公司面人超级认真,官网的云设计功能也很炫酷,还是希望以后有机会可以去这个公司实习吧

  • 1.自我介绍
  • 2.问觉得自己最出彩的项目
  • 3.技术选型当时怎么考虑的?
  • 4.有没有想过你与后台以及部署人员交接的这种流程太麻烦,怎么简化?
  • 5.登录注册流程你前端怎么处理的?
  • 6.有没有想过在后台富文本编辑器不安全?XSS和CSRF怎么避免?
  • 7.Cookie与Session的区别?
  • 8.除了Cookie,还有其他本地存储的方式吗?(Web Storage)
  • 9,前端工程化你是怎么理解的?
  • 10.轮播图你怎么实现的?怎么防回闪的?
  • 11.描述一下JS中的数据类型有哪些?
  • 12.JS原型与闭包,你的理解是什么?
  • 13.ES6中你常用的有哪些?
  • 14.为什么const定义一个数组与对象,仍然可以对其操作?
  • 15,promise比传统的回调函数好在哪里?
  • 16.promise中then是怎么实现链式调用的?
  • 17.异步方式除了promise还有那些可以实现?(希望回答出generator以及ES7的async,await的知识)
  • 18.描述下CSS盒子模型?
  • 19,CSS水平垂直居中的方式?
  • 20.Vue中父子组件通讯问题?以及两个不相干组件通讯问题?
  • 21.Vue中两个数据a,b,a渲染在页面上,b没有,此时有函数操作了b,问组件是否触发重新渲染?
  • 22.Vue中Computed与Watch用过吗?区别是什么?
  • 23.怎么去解决用Webpack打包后的项目体积过大的问题?
  • 24.说下你对Vue这个框架怎么理解的?( MVVM )

酷家乐二面(电话面试)

二面是个小姐姐面试我的,因为我说我对设计感兴趣,她让我说出我觉得很有设计感的一个网站,我说了阿里妈妈~然后又问了我对于阿里妈妈网页上的一些动效怎么实现的以及我对于网页设计自己的看法,不过二面基本还是考察JS为主,问的都是JS的问题

  • 1.怎么实现私有变量,不能用点属性访问,只能用方法(多种实现)
  • 2.不用循环,怎么实现x长度,元素为y的数组
  • 3.怎么实现add(3,4)以及add(3)(4)?
  • 4.用3升,5升杯子怎么量出4升水?如果用代码你会怎么实现?
  • 5.最复杂的一个项目,平时写代码多吗?
  • 6.最欣赏的一个网站设计,有哪些优点?你对设计的理解?

酷家乐三面(电话面试)

二面结束后过了一小时,HR打来电话约三面,说三面主要考察算法和面向对象设计,唉,我的算法还是有点虚的,所以三面的时候虽然在面试官的引导下,我最终回答上了所有问题,但是可能还是没有达到面试官的预期吧……最后面试官建议我下来多刷刷剑指Offer和LeetCode上的题……

  • 1.求正,负数组其中的两元素之和最接近零的这两元素,并说出你这种解法的时间复杂度
  • 2.链表,栈,队列相关问题
  • 3.赛马问题,25匹马,5个赛道,最少几次能选出最快的三匹马?
  • 4.面向对象设计题,一个借书还书系统需要哪些类,属性,方法(需要考虑很多情况)

美团一面(电话面试)

美团一面虽然是电话面,但是还是发了在线编辑的链接,不过还好写的题的比较简单,一面问的也不难,面试官就说我们稍后约一下二面

  • 1.首先介绍一下自己最近的项目?
  • 2.闭包介绍一下你的理解?用处,缺点
  • 3.跨域有了解吗?
  • 4.浏览器缓存你知道哪些?
  • 5.Cookie、Session、Webstorage的区别
  • 6.简单说下从url输入到页面输出的整个过程
  • 7.说下你知道的HTTP 状态码
  • 8.介绍一下盒子模型?
  • 9.Flex用过吗?用过哪些?
  • 10.React有用过吗?
  • 11.ES6有用过吗?介绍一下?Promise有用过吗?
  • 12.HTTP与HTTPS的区别?
  • 13.手写代码:写一个函数,参数为url,输出一个对象,为查询字符串中的各个值

美团二面(视频面)

不知道为啥美团二面又变成视频面了……感觉二面面试官全程冷漠脸233,开始聊了聊我的项目,然后又问了些基础知识,最后让手写了个数组去重就没啥了,我觉得也没啥难度,然后到现在也没消息,应该是凉凉……

  • 1.项目介绍一下,最有成就感的一个项目?
  • 2.介绍一下你自己对自己满意的能力?
  • 3.为什么学前端?除了前端你还写什么?
  • 4.JavaScript原型你的了解?
  • 5.说下BFC是什么?
  • 6.说说你对Flex的理解,rem你怎么理解的?
  • 7.HTTP和HTTPS的区别?HTTP2.0的区别?它们的默认端口是什么?
  • 8.JS的深拷贝和浅拷贝的区别?
  • 9.堆和栈有什么区别?
  • 10.怎么取消事件冒泡?
  • 11.CDN有了解吗?怎么让请求在最近的站点下载?
  • 12.手写代码:数组去重的多种实现?

知乎一面(电话面试)

知乎的面试是我感觉最莫名其妙的,问的问题我都回答上来了,然后就没消息了……很神奇

  • 1.写一个函数,字符串每个字母之间插空(用到split和join)
  • 2.Cookie和Session的区别?
top Created with Sketch.