他人面试知识点总结

作者:不想gg
链接:https://www.nowcoder.com/discuss/84088?type=2&order=0&pos=58&page=1
来源:牛客网
 

首先说明,本文是为了回馈牛客,感谢之前的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和正常的οnclick=()=> 的区别

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.数据结构的栈、队列、链表、等等这些基础的数据结构要明白是什么。

4.设计模式(https://www.cnblogs.com/tugenhua0707/p/5198407.html

5.数据库相关操作语句(这个问得比较少,但是基础的数据库语句还是要学的,还是菜鸟教程。看一下就行了)

6.linex基础指令,一般很少问。就算问也是问你知道什么指令

7.bootstrap实现栅格的原理

8.webpack相关配置。例如跨域之类的

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

 

 

 

贴吧的一个总结

 

现在在北京一家创业公司工作,待遇还可以,给想接触已经接触前端的同学们一点建议吧
先提出几个问题,会的正常,不会的赶紧去看。
手写数组去重
手写数组倒序
各种场景下的this指针问题
冒泡,选择,插入排序用js怎么写,时间复杂度多少空间复杂度多少
http和https有什么区别 端口号多少 
三次握手过程
四次挥手过程
域名解析过程
三列布局中间固定左右自适应的三种写法
变量提升问题
那些数组方法会生成一个新数组,那些不会生成新数组
上面那些问题回答不上来说明你不仅前端不行,上大学也没好好学习,赶紧滚去学习吧


下面这些问题是针对一般学习前端两个月都应该会的问题,如果已经学习很久了这些问题还是有盲区的化说明前端不适合你,或者你不适合前端
怎样理解语义化
怎样理解表现与样式分离
什么是混杂模式严格模式,怎样触发
常见的mate 标签 
什么是文本流 文档流 dom树
什么是行元素 什么是块元素 通过那些属性可以让行元素转换成块元素
可以设置宽高的行元素叫什么
css常见几种选择器
选择器的权重值分别多少
js中有几种变量类型 哪些放在堆 哪些放在栈
变量类型隐形转换问题
如何声明函数




下面这些问题是一个前端开发应该会的,如果不会就别去找工作让面试官鄙视你
闭包是什么,怎么形成这种结构 有什么用处何危害 有没有实际的案例
settimeout在不同的情况下的执行顺序
settimeout中的this指针指向 
手写继承实现
手写深浅数组克隆
手写一个方法取出url后面的参数 
几种跨域的方法
手写ajax函数兼容ie和标准浏览器
浏览器状态码有哪些


下面这些问题是最近比较常问的,回答不上来一定会pass
什么是宏任务什么是微任务
promise的运行机制,几种状态 
介绍缓存机制
cookie session localstorage区别
mvc mvvm区别 
angular vue react区别 
angular双向数据绑定原理
vue双向数据绑定原理 
什么是虚拟dom 怎么实现 
vue组件传值的五种方法
vuex是什么
输入一个url到页面显示都会发什么
性能优化的点
如何实现节省流量 
前端安全攻击有几种 如何避免 
dom树的节点遍历
先这些吧后续再补,虽然现在出现了很多简化dom操作的框架,这些框架可以让面试者很轻松的隐藏掉自己的js基础方面的不足 
但是js基础一直是重中之重,一些很复杂的问题都是从js基础进行分析解决的,不要觉得学了几个框架,抄了几个demo就可以自信满满的去找工作了,面试官更看重的是学习能力和基础

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值