经历了两个月的复习,笔试,面试。现在总结一下,前端面试中我认为经常被问及的问题。
计算机网络部分
- tcp/udp的区别
- 三次握手,四次挥手
- 谈谈你对http协议的理解(这里可以深入学习一下HTTPS,http1,2,3,ws协议也可以了解)
- 状态码
- http协议中的一些重要字段要了解(这里面可有好多东西要学啊,哈)
HTML部分包含h5
- HTML中的块级元素,行内元素?
- h5的一些新特性,新标签
- input的类型有哪一些,举例,越多越好
- form表单
css部分包含css3
- flex布局说一下(几率非常大)
- 谈一谈定位,有哪几种,具体
- 双飞翼布局,圣杯布局·····
- 移动端适配(这个应该是必考)
- css3中的新特性
- 画图,画三角形(这个我没遇见过,但是我看别人面经出现过)
- 盒模型
- 垂直布局,水平布局(必考)
- 什么是BFC?
10.css还有好多问题,大家可以多多了解,多看一些面经
js部分
- var let const 之间的区别
- this指向
- 闭包
- cdn原理(可以看我上一篇博客,有对cdn的介绍)
- 做题,用js解决算法题
- call applay bind区别(这里还会常要求手撕代码)
- 类型判断 typeof instanceof区别
- 手撕instanceof
- 手撕深拷贝 浅拷贝 以及区别原理
10.谈谈防抖和节流(大概率手撕)
11,原型链,原型
12,谈谈js 中的继承机制
13,伪数组有了解吗?伪数组的特性(arguments)
14,promise题目,求输出内容
15,数据类型
16,js中常见的数组方法也是会考的,有一些方法还会要求手撕,所以不仅仅只要求会用,还要懂原理
17,事件机制
18,宏队列,微队列(这里结合promise考的概率非常大)
19,js 垃圾回收机制
20,js考的问题也是相当多,js也是前端的基础,所以大家要认真学
浏览器部分
- 谈谈浏览器缓存(强缓存,协商缓存)
- 浏览器本地存储
- cookie,webStorage,Indexdb区别
- 网络模型(七层模型,五层模型)
- 网络请求的过程
- 说一说从URL到页面渲染经历了什么?(难难难,而且必考)
- 回流和重绘
- 谈谈浏览器安全相关(XSS,CSRF攻击)
- HTTPS加密有了解?
es6部分
- 说说es6中的新特性,新语法
- promise
- 手写promise,或者手写promise.all/promise.then······
- async/await
- 箭头函数
- this指向
- class说一说
react部分
- 谈谈你对虚拟dom的了解(vdom)
- redux
- diff算法
- ajax
- ······
webpack部分
- webpack的组成
- webpack是用来干什么的
- webpack优化
- plugin举例,作用
- loader功能,执行循序
- ······
nodejs部分
- nodejs大致原理
- 内部实现(有一些功能底层是c++实现的)
- node的知识问的不多,了解即可
项目部分
面试中可能一面是一些‘八股文’,也就是一些基础知识,但是如果到了第二面,项目经历就是必问的了,所以如何阐明自己的项目也是一个技术。
首先,简历上得多写几个项目,最好三个也别而太多,一页都写不下,哈,别搞一些一眼就知道没有什么技术难度的项目。第二,向面试官介绍项目的时候,可以从项目的背景,遇到了什么困难,怎么解决的,使用了哪一些好的技术,从项目中学到了什么等等方面出发。第三,项目有哪一些优化的点这个可以单独拿出来讲,作为亮点。最后,自己一定得了解自己的项目,到底写了什么?别到时候面试官问起来,自己反而掉坑里面。
祝大家早日找到实习或者正式的offer!