史上最全的前端实习面试攻略,欢迎补充(求置顶)~~~~

首先说明,本文是为了回馈牛客,感谢之前的n多大佬的面经和经验的累计,最近我也小有战果,在这里就进行一下总结吧,并且也当做帮一下我们前端的小伙伴们,毕竟牛客网上大多都是java或者其他的。真正关于前端的还是非常少的。
楼主最近面试的公司不算是很多,但是我有一个几个人的小团体。个人感觉如果本篇文章的所有知识点你都掌握了,百度阿里腾讯网易京东,这五个公司,或许需要一部分运气和其他的条件,但是这篇文章能保证你基础知识的面试都没有问题,其他任何一线、二线或者是三线公司.....应该都是秒杀的。因为我和另外俩个兄弟都已经面试了。迄今为止,我们已经收到以下这些公司的offer,百度、有赞、携程、滴滴、蘑菇街、北森云、头条、360。(楼主双非院校的渣渣,能这样感觉已经还好了....)当然还有许多不算是真正互联网公司的offer、还有许多几百人规模的小的公司。大概就是这些吧。至于腾讯和阿里,我和另外俩个兄弟都是现阶段没有参加面试的。因为我们3月份这些都挂过了。当时太天真。就乱投乱面了,很多东西没有准备好。所以gg了,而且现在还不让再投简历了。所以就没去尝试,如果有其他小伙伴过了的话请给这篇文章加上一个你们自己的知识点,我会随时查看回复并且添加相应的部分。让我们打造一个最全面的前端面试攻略吧~
一、算法部分
前端算法部分还是很简单的,至今我也没问过什么比较难的算法问题。如果你算法不好就可以直接告诉面试官。不需要过多作假,面试官其实也很聪明的,如果你作弊很快就能发现的。
1、基本排序的方式
冒泡、快排、桶排、堆排序、归并排序、插入排序。
基本也就这些吧。最重要的还是快排和插入排序和堆排序。自己多写几次,有递归形式的再好好看一下使用循环形式达到结果的形式,基本也就没什么问题了。
2、二分搜索等。搜索方式或许是因为我太诚实了吧。。一般我就直接说我的算法不是很好。直接告诉他大多用过就是二分搜索了。其他的面试官也就不怎么问了,毕竟前端岗位。
3、二叉树遍历相关,例如前序遍历中序遍历后序遍历等,深度优先搜索和广度优先最好掌握。还有二叉树的反转。暂时能想到的就是这些吧。TopK问题也有问过。
个人感觉除了以上这些应该就没有什么了。有些面试官曾经直接就告诉我,他大概也就会这些吧。再多了也就不怎么了解了。牛客神器剑指offer,全部刷完,再加上上面这些应该也就没什么问题了。

二、计算机网络部分
计算机网络部分知识点个人感觉不是特别多,基本面试官也只是简单问一下,以下这些你能说明白就没什么大问题了。
1.最重要的就是http协议。毕竟前端大多都和http协议搞事情。http协议大多包含了以下几种问题吧
除此之外暂时想不到其他的了。缓存字段和200、404、304之类非常常用的状态码一定要记住。
2.tcp的三次握手和四次挥手。除此之外再就没什么了。
3.udp和tcp的比较等等

三、 html和css基础部分。
这个部分的知识点非常多非常多。一时半会也不可能将所有的都囊括在内,先列出非常重要的吧。
1.盒模型概念
2.position定位属性和相关的关系,例如relative占用文档流,而absolute和fixed却不占用,还有relative和absolute结合使用会有变化,一定要搞懂。
3.display相关属性,常用的block、inline、等等。都要弄明白。
4.IFC和BFC问题。
5.双飞翼布局。
6.垂直居中、水平居中的多种方式和方法,这俩个都有很多的方法,尽量每个都记下来4个方法以上。应该就没问题了。但是要注意能说明白每一个方式方法的限制。例如我们使用line-height的时候需要知道高度等等。而且还有要注意字体的居中和块级元素等居中是不一样的。
7.圣杯布局(别人考过,我基本没被问过。)
8.rem、em的使用。
9.less等预处理语言。
10.媒体查询。
11.vh和vw,当然这个考的实在太少。
12.h5的语义化部分。这个其实在面试上是比较重要的一个问题,例如楼主蘑菇街当时就有一个问题问我实现删除线怎么办。当然有html基础标签和css样式了。他就问哪种更好。当时楼主一脸蒙蔽的说html的方式更好。最后被问原因的时候说了一大堆不重要的,最后面试官告诉我是在语义化的方面考虑的。。。
13.h5 的web worker 还有websocket。这些不需要你真正使用过,但是要明白他们在什么场景下使用。就可以了。自己拿菜鸟教程上代码的实验一下就可以了。websocket内部还有一些关于协议的部分。要自己弄懂。
14.h5的语义化标签都有什么,大致看一下,记住一部分。还有新加的例如video这些东西。
15.css3的都很重要,包括transform、transition、animate这些都好好看一下。
16.css选择器的优先级,也就是class id 元素选择器这些的优先级计算。
17.css样式表引用的优先级部分。例如link引用或者行内都设置了字体颜色,问字体此时显示什么字体。
18.清除浮动。
19.canves 某些特别的公司部门可能需要,但是我至今没有被问过。
20.css实现响应式的方式。
除此之外暂时也想不到其他的了。如果再有想到会再次添加。

四、js部分
这个是重中之重了,如果你js掌握的非常非常好,面试官的问题你都回答上来了,那么html、css部分问题没答上也没有什么。毕竟js才是前端的重点。
1.js的作用域作用域链。
2.js的原型原型链,来一张巨经典的图片。能看懂或者你给面试官讲明白就ok了。还有instanceOf那些判断。
3.js的dom元素操作插入删除等等。
4.js的垃圾回收机制。(问的比较少)。
5.js中String或者Array或者Math内部常用的方法。这些在菜鸟教程上都可以看的。
6.ajax请求详细怎么实现,和其中的响应状态。
7.js的基础类型和引用类型
8.事件委托、事件冒泡、事件捕获。
9.addEventlistener和正常的onclick=()=> 的区别
10.js中new和object.creat区别
11.除了js中DOM的基础方法还有BOM中的方法。比如通过js直接取出相应的url的端口号,或者是协议名,或者url整体。
12.浏览器输入url之后最后网页渲染出来经过了什么(https://blog.csdn.net/xiaozhuxmen/article/details/52014901
13.js跨域实现。我大概回答的有webpack和nginx等***跨域。CORS和jsonp等。一般这些就可以了
14.浏览器的同源策略
15.浏览器的回流和重绘,就是reflow那些东西。
16.call、bind、apply区别。
17.js实现继承怎么实现。原理是? 这个其实和上面的原型链原型是一起的。百度一下,多记住几种方式。
18.请求get和post的区别
19.js方法参数argument
20.深拷贝和浅拷贝,还可以引入序列化。还要明白序列化的缺点。
以下都是es6
21.promise,最好自己声明一个构造函数尝试去实现,这样面试官会觉得你学的很认真。如果实在自己写不出来上网查一下promise的实现原理或者源码应该就有。
22.闭包
23.let和const,最好全面一点解释,包括可以说一下变量提升引入一下var,和这些在什么场景下去使用。
24.generator
25.es6加上symbol的基础数据类型
26.set类型可以实现数组去重等。
27.箭头函数 重点,很多时候都会问 包括里面的简便写法和内部的this指针指向等等
28.解构赋值
29.es6新增加的正则符号。
30.或者直接问你es6有什么新加的东西,说得越多越好
es6我们可以去http://wiki.jikexueyuan.com/project/es6/这里面去学习。当然想要更深了解的话就需要看一下阮一峰大大的那本书了。但是这个我觉得面向面试足够了。
以下就是亮点部分了,面试总要有一些亮点告诉面试官你基础很好。因为其实和面试官拽技术没必要的,人家真正搞开发的,真的拽技术能甩你8条大马路(当然真正的大大大佬请无视我这句话),而且我是面向咱们很多还是在蒙圈的同学们写的。都是很基础的东西,毕竟不能说所有人都瞄准bat进发对吧?
1.js单线程和js具体怎么实现异步的。大概的技术名词有事件队列、执行栈、宏任务、微任务。具体的各位老铁们百度吧。。
2.webworke做分线程
3.vue-router原理实现。多看源码之类的
4.nginx负载均衡。redis共享数据等等等。
5.asm.js(这个我想很多人没听过都。。这个是我自己看的一个技术。比较有意思的。因为面试官总会问你最近在看什么比较新的技术这样的问题,专门准备的)。

因为我大多都是使用vue和node等的技术栈,所以vue也会问很多(看完vue官方文档,基本就没问题了)
1.vue的生命周期
2.双向数据绑定。这个最好也是自己实现一下 理解更深
3.vue父子组件传递参数
4.vue传递参数方法
5.vue自定义组件
6.vue自定义指令
7.vuex组成和原理
8.vue-router的原理,例如hashhistory和History interface这些东西要弄明白。其实看一下源码就好了,看不懂可以直接看解析的相关技术博客。
9.vue的seo问题
10.预渲染和ssr
11.生命周期内create和mounted的区别
12.监听watch等等
13.登录验证拦截

还有一些其他的问题。
1.跨域。
2.网络安全,大多就是csrf和xss看明白原理和解决方式就可以了。
3.数据结构的栈、队列、链表、等等这些基础的数据结构要明白是什么。
5.数据库相关操作语句(这个问得比较少,但是基础的数据库语句还是要学的,还是菜鸟教程。看一下就行了)
6.linex基础指令,一般很少问。就算问也是问你知道什么指令
7.bootstrap实现栅格的原理
8.webpack相关配置。例如跨域之类的
大概也就是这些知识点吧。除此之外,你在面试阶段不需要写太多的项目经验,除非你非常厉害写了很多,参加了n多的导师的上线项目,当然很多普通的同学们也都不会有那么多机会去实践,但是都没有什么好怕的。之前滴滴的前端leader和我说,其实你们实习生的问题都很同一,项目经验很少,我们其实更要求的是你处理问题的方式,和你扎实的基础。不需要那么多其他的东西。而且可能很多人会挂在最后一面,其实很多时候不是你的技术问题。是你不敢去说。你会多少东西,就以你自己的见识和知识去尽力解决,就算你真的不知道,哪怕知道一点点,也尝试着去表达。我记得我有一个终面的leader就是说,这个问题本身也不是给你准备的,就是想看看你敢不敢表达,还有你的推理和类比能力怎么样。大概的套路基本是一面纯纯基础技术面试、二面也可能是纯基础技术面试,或者给你出很多情景题,让你用你的知识去解决,如果是这样的话基本不用怕的。因为公司的实习生的要求都比较低的,毕竟大家经验都不可能很多。否则还去实习干嘛。尽自己能力表现就行了,还有一点非常非常重要。和面试官打好关系,如果你觉得没问题,微信号必须要,维护好之后的关系,如果他在部门内部力挺你,你技术还不是很差,基本就稳了。我们这里是真的有一个实际例子的。和一面面试官聊得非常好,之后一面面试官力挺他,到三面就不到5分钟,基本就是聊天,什么都没问。直接发offer,具体公司我就不说了,BAT之一,而且是部门唯一一个实习生。据说那个实习生预选名单里面985的非常多,还有研究生也非常多。但就是选我们这里的人了。另外我得经验是,当你准备差不多不知道再准备什么,就去面试吧。在面试中找自己不会的,最快速度去总结,最好当天就弄懂,有的时候之后的面试官会问你之前面试有没有不会的问题,然后回去以后又是怎么解决的,反正面试官的套路非常非常深,非常非常的多。你就尽量表现的积极向上一点,找一个好的工作不是问题。
呼。一口气写了这些,容我喝口水去。

#实习##前端##面经##百度##有赞##滴滴##字节跳动#
全部评论
另外在项目上如果实在没有可写的,可以用自己会的东西写一个自己的博客,阿里云的云翼计划9.9一个月的服务器,可以买一个,具体样式参考网上各路大神的样式,写一个就能增加你很多经验。 还有关于面试的事后要记得随时给面试官挖坑,比如他在问你settimeout这些的时候,你就可以在解释的时候捎带着说一句事件循环,然后大多都会继续问你,你刚才回答中提到了事件循环,你能解释一下吗。然后就开始讲js单线程啊、js的执行栈啊、之类的。千万记得要自己把握面试节奏,要是一直让面试官问你,然后你中规中距的去回答,很多时候都会碰到你不会的问题,然后你就凉凉了。自己把握好节奏非常重要。
5 回复 分享
发布于 2018-06-14 10:08
我面试都是往项目上引,往我会的东西上强行扯过来,然后自信的答。。
2 回复 分享
发布于 2018-06-14 10:16
简历老是投出去,沉了怎么办,学校不好
点赞 回复 分享
发布于 2019-10-30 12:21
面试的算法题是用JS写得嘛?还是得用C++?
点赞 回复 分享
发布于 2019-10-26 09:04
请问一年时间,每天5小时左右够吗
点赞 回复 分享
发布于 2019-09-15 14:23
请问这些学完你大花了多久
点赞 回复 分享
发布于 2019-09-15 14:22
前端都很多研究生吗瑟瑟发抖
点赞 回复 分享
发布于 2019-05-20 21:28
谢谢楼主 我加油
点赞 回复 分享
发布于 2019-04-18 21:33
赞 一个,
点赞 回复 分享
发布于 2019-04-16 17:26
弱弱问一下刚学完HTML能赶上春招实习吗😶
点赞 回复 分享
发布于 2019-03-15 11:44
二面一般都问什么啊?😳
点赞 回复 分享
发布于 2019-03-07 15:02
为什么腾讯、阿里不让再投简历啦?
点赞 回复 分享
发布于 2018-07-23 16:44
软6之星
点赞 回复 分享
发布于 2018-07-20 16:59
感谢分享!
点赞 回复 分享
发布于 2018-06-26 02:53
感谢楼主分享,写得真的很好
点赞 回复 分享
发布于 2018-06-18 08:41
谢谢楼主!
点赞 回复 分享
发布于 2018-06-15 17:52
谢谢
点赞 回复 分享
发布于 2018-06-14 23:06
唔,有木有node和react的面试题啊
点赞 回复 分享
发布于 2018-06-14 12:05
楼主很棒了
点赞 回复 分享
发布于 2018-06-14 10:53

相关推荐

04-26 14:36
已编辑
郑州信息科技职业学院 Java
由于高考成绩不是很理想,听取了张雪峰老师的建议,优先选了专业并且当时的想法就是选一个能赚钱的专业,于是最终选择了报了一个能收留我的有计算机专业的学校。当时听张雪峰老师说河南的学习氛围很好,所以就想去体验一下,事实雀食如张雪峰老师所说,大家都一股脑的铺在学习这条路上。可能是因为那边氛围导致的吧,我一开始想的也是卷学习卷绩点,所以大一的时候就一直在学习硬试教育的一些东西,学期结束了,排名出来的时候中上水平吧,据我了解保研的只有前5名可能会有机会,当时的心里就想着,我这成绩再卷也卷不到哪去了,并且保研也无望了,总结的说,一些事情只有真正做了才知道是不是自己所追求的。说了很多废话吧,剩下的关于学校的就长话短说了吧。大二很多专业课基本上要从早八上到晚上,但基本上我都是不去,不如自学现在新媒体技术这么发达,并且还可以学一下自己需要的技术栈,由于学校的课程原因对其他的技术栈不是很了解,所以,一心就投入在Java这个方向了,但是,Python也会学一下,这是因为加入实验室,实验室老师是做人工智能方向的缘故。现在回想,我大二当时还是学的太慢了,还有就是信息差太大了,出来工作之后才发现有些佬们已经大二就出来实习,并且八股就背的滚瓜烂熟了。只能说这里的学习氛围很好吧,走廊里都是背书刷题的声音,跟身边的同学和实验室的同学谈是否直接就业的事,他们要么都是说考研,要么对直接就业很含糊,可能是因为觉得自己学的还不够吧,我想说,学的不够就干中学呗,反正,我先迈出去这步再说。到了大三上还是没有找工作的打算,因为身边的人也都还没有这个意识吧,现在跟了身边的同事聊天才知道,我的信息差太大了。到了大三下刚开始,我才开始正式的踏上求职路,当时的信息差还是很大的,根本就不敢碰瓷大厂,想着有一个公司能要再说吧,并且地域也限制的很死,只想着在本地找一下,因为怕学校找事(我想这是学校一贯操作了),在本地吧,他们大多数都是接受的线下面,一开始面了一个,可能自己比较摆也很悲观,就显得我很差吧,hr面完就没后续了,最终终于有一个面,并且也展示出自己的自信和对专业的理解了,最后,我也没想着这么多背调公司呀,当个备选什么的就直接去了。也算是我的第一家正式的公司吧(之前都是线上的码农兼职),干多了就发现,这个公司压根学不到东西,并且薪资低的,因为我是第一个进来的计算机实习生,有一个同事干了两三年的吧,带着我做的时候是真能学到东西,但是,最后那个同事离职了,我就只能和学艺术的老板直接汇报项目进度,一个学艺术的来指导我这个科班出身的就很离谱的好吧。最后,我也离职了,也跟前同事聊了很久,她说我是她见过大三就能学到这程度,已经超过很多人了,并且她当时在的时候还说我是内定能转正的。并且还说我真的可以去考研。我也仔细思考了一下,我决定让自己沉淀一下再出发吧,先备考了软件设计师,然后期末考,大三暑期的时候就充实自己的简历,并且也认识了一个某东的老哥,也用了内推码,教我了怎么写好简历量化成果之类的,总之,很感谢一路走来帮助我的人吧,并且我在边充实自己的同时也在边投递简历,但当时卡的也很死,要选base地在河南附近的,不像现在全国可飞。面了很多base地在学校附近的,然后,还有一个北京的py和杭州的java,最终就这两个地方给了offer,但是都是实习转正的,不是秋招offer,因为觉得Java的太卷了,然后,面试的时候也会感觉压力很大,所以就把杭州的那个拒了,去了北京的,北京是免费住的房子(三个月这是伏笔),当时觉得环境很好,但是合租室友的作息跟自己的作息不一样就很不习惯,于是,我就想着要是三个月后我一定要找一个单间的哪怕破一点。北京这个公司吧就很像国企的感觉,早九晚五,当月发当月工资,并且干的活接触的数据量都不是很大,就是干了很多杂活,并且mentor和部门的领导都不是技术出身,所以,我能学到的东西少之又少,但是吧,学习是自己的事,而且这部门不是很忙对于实习生来说,我完全可以学自己的东西(前提是不被发现)。到最后这个部门的氛围就很微妙,我遇到不会的问他们我应该怎么做的时候,他们说让我自己想,我当时就想说,神人一个,啥都不说让我自己干,干出来又不满意,你说你让我干py的东西你不会我就不说啥了,让我干无关代码的东西,让我调研项目应该做些什么内容,现在回想都是泪呀,我就这样被欺压的过完了三个月,最后免费住的地方也到期了,伏笔来了,最后,找我谈话说你技术可以了能看出来,因为你也自己独立完成了消息通知那一块内容嘛,但是,由于我们部门干的活比较杂并且我也缺少一些电力相关的一些知识,所以,觉得不合适。(OS:其实我对每一份工作都是真心换真心的,并且这些电力知识我也知道我有一点欠缺所以我也有自己再学习,你们啥也不教我,最后把屎盆子把我头上扣)最后,回到了学校,心态也发生了变化,想着做啥都不如找一个稳定的工作重要,想着回家沉淀吧,少年终有出头日。但是,计划赶不上变化,之前那个同事,内推了我去她现在的公司,并且是做AI应用的也是我想接触的,并且还是与我上家的业务场景类似的,真的感谢那个同事,俗话说:千里马常有而伯乐不常有。并且那里的部门领导也很好,并且说我虽然不是电力相关出身的,但是能做的这样已经很不错了,所以DDDD,由于各种不可抗力因素吧,还是想找一个离家近,然后不是很像小作坊的感觉(这个公司虽然比较小,但是比之前那个大的公司的氛围和待遇一点都不差的好吧甚至更好)。最终,在学校也呆了一个月吧,也陆陆续续面了一个月有一个C厂的面答的都挺好直接就谈薪了,但是风评不好还是保命要紧,还有各种的中小厂面吧,但感觉都不是自己想要的,只是想刷刷面试经验吧(这是某东哥告诉我的,与其一直改简历不如去多面)。最后,在校期间面了一个比较合适的某鸦智能,一直推进到了HR面,但是最后被横向了,开始复盘,被横向了属实是没招了,经历了这么多大风大浪什么场面没见过。过年期间,求职路线关闭,把自己缺少的技术栈和简历中的项目业务理清楚说明白。年过完就要开始加入找工作大军中了,把节前没面完的先面了,节后一开始就是某鸟的HRG面,聊的就很憋屈的感觉,问我技术方面的,说我说的很像AI的(我心想跟你说具体的细节你又说我不想听技术的,说的比较宽泛浅显说我AI)。最后,反正体验感不是很好的结束了吧。说一个星期等通知,等了两个星期才说是通过的(我认为是排名靠前的那些人没去,顺位到我了)。那你既然这样说了,那我就接受吧。还没入职就问我要身份证信息要这要那的,最后都给过去了,说HC调整,要重新review,又又又一次被恶心到了。后面就是陆续的沉淀面试等,我当时的重心已经完全的想着私企没人要,就去试试考公和考央国企了,毕竟我的履历不看学历的话放到电网当中还是可以的。私企的话有一个外企洋里洋气的说话,问我怎么口语这么好?我说这叫智取,宝贝。虽然这个tek外企过了,但是还有一个openday要去线下,来回的衣食住行不是很方便也不是很想去所以就拒绝了没去。后来就收到了,国网网申通过的通知,说实话,我之前问了很多我们学校历年有没有考央国企之类的案例,很显然都不知道,也可以说少之又少吧,于是我就奔赴京城进京赶考,唉,时间不太合适就想着算了吧,再等等,好事多磨,宁缺毋滥吧。金三银四终于等来了面试的机会,这个岗位我只能说我不是很熟悉,但是语言这东西吧都是相通的,重要的是我要把其中的内核搞懂,梳理清楚业务逻辑。最终,来到了这家公司,目前来说是我遇到过最好的了,能有hc且不是要通过实习评估的那种,并且合同期限是三年的,并且是12%的公积金。我认为这就是我所遇到的最好的了。希望能真心换真心吧,不再把我当创口贴/路边一条了,并且也遇到了很多优秀的同事。总的来说,就是要是能重来我要选李白。我肯定会打破这些信息差,后悔知道的太晚,并且跟优秀的人聊天说话真的可以学到很多东西,之前上文提到的贵人就不说了,说说最近的,他是跟我一届,学校后缀甚至不如我的后缀,但是真正了解的才会知道真是佬👍,他跟我找工作的时间线差不多,但是他在中大厂甚至大厂都呆过,因为跟他聊了才知道我当时的信息差有多大,并且毅力也是我甚至…都没有的。并且也听说了他们学校找工作的氛围很好,不像我阿巴阿巴阿巴,只有考研等相关的一些。并且说的一些观点都是很认同的。总之,希望能在这好好的吧,我真的不想经历大起大落了。经历了,打招呼挂,简历挂,一面挂,HR面挂,offer挂的,现在的心态已经放宽了很多了,但是难过还是有的,希望这家公司诚不欺我吧。也祝大家遇到自己的梦中情厂
选择和努力,哪个更重要?
点赞 评论 收藏
分享
04-19 10:50
门头沟学院 Java
想奋斗的小山竹在改简...:学院本能过简历筛选吗,我怎么看一些一本都过不了
点赞 评论 收藏
分享
评论
107
792
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务