早做准备, 以免不时之需.
分析面经
昨晚看到一篇文章《史上最全的前端实习面试攻略》, 看到一半竟然油然而生一种学习成果颇丰的感觉, 拉到评论区一看都是这种声音, 分类做个总结, 为以后复习提供个方向.
算法部分
前端算法部分是相对简单的,如果你算法不好可以直接告诉面试官。
1、基本排序的方式
冒泡、快排、桶排、堆排序、归并排序、插入排序。
最重要的还是快排和插入排序和堆排序。
多写几次,有递归形式的再好好看一下使用循环形式达到结果的形式,基本也就没什么问题了。
2、二分搜索等
3、二叉树遍历相关
- 前序遍历中序遍历后序遍历等
- 深度优先搜索和广度优先
- 二叉树的反转
- TopK问题
计算机网络部分
1.最重要的就是http协议,大多包含了以下几种问题:
- http报文解构都包含什么(大致就是那个三部分,请求实体、请求头、请求行这些)
- http协议常用的状态码(https://blog.csdn.net/xiaozhuxmen/article/details/51934706)
- http头部关于缓存的字段
- http和https的区别
- http1.0 1.1 2 大致的区别
缓存字段和200、404、304之类非常常用的状态码一定要记住。
2.tcp
的三次握手和四次挥手
3.udp
和tcp
的比较等等
html和css基础部分
canvas
12.h5的语义化部分和h5的语义化标签有什么。这个其实在面试上是比较重要的一个问题.
13.h5 的web worker 还有websocket。这些不需要你真正使用过,但是要明白他们在什么场景下使用就可以了。
拿菜鸟教程上代码的实验一下就可以了。
websocket内部还有一些关于协议的部分要弄懂。
html 的嵌套关系
js部分
这个是重中之重了,如果你js掌握的非常非常好,那么html、css部分问题没答上也没有什么。
毕竟js才是前端的重点。
1.js的作用域作用域链。
2.js的原型原型链,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之后最后网页渲染出来经过了什么 浏览器加载、解析、渲染的过程
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我们可以去《极客学院 —— ECMAScript 6 入门》 这里面去学习。当然想要更深了解的话就需要看原书了, 但是这个我觉得面向面试足够了。
以下就是亮点部分:
1.js单线程和js具体怎么实现异步的,大概的技术名词有事件队列、执行栈、宏任务、微任务。
2.webworke做分线程
3.vue-router原理实现。多看源码之类的
4.nginx负载均衡。redis共享数据等等等。
5.asm.js(这个我想很多人没听过都。。这个是我自己看的一个技术。比较有意思的。因为面试官总会问你最近在看什么比较新的技术这样的问题,专门准备的)。
框架部分
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.webpack相关配置。例如跨域之类的
2.网络安全,大多就是csrf和xss看明白原理和解决方式就可以了。
3.数据结构的栈、队列、链表、等等这些基础的数据结构要明白是什么。
4.设计模式
5.数据库相关操作语句(这个问得比较少,看一下就行了)
6.linex基础指令,一般很少问。就算问也是问你知道什么指令
7.bootstrap实现栅格的原理