前端面试准备

1.let const
1.块级作用域
2.const生成的常量不能修改,(引用类型除外)
3.不存在变量提升,所以不能提前使用。
4.不能重复命名
2.解构赋值
let a = 1,let b = 2
let [a,b] = [b,a]
3.set,map数据结构
1.set:存储不同成员的集合(常用来数组去重)
2.map:键名是任何类型的键值对结构
4.symbol:独一无二的值
5.proxy:拦截对象,重写对象的一些属性和方法
6.promise:
1.三种状态:pending,fulfield,reinjek,状态修改后无法重新修改
2.race,all.resolve等方法
7.箭头函数
1.没有自己的this,this指向调用自己的上下文
2.不能被new
3.不能使用call,apply,bind函数
8.async await
1.async:返回的是一个promise
2.await:后面是一个promise对象则返回promise对,如果不是则返回对应的值。(假如一个类包含then方法则会被当做promise处理)
3.多个await时一个状态改变后将不再改变(不加容错处理|加了catch,或tryCache后面的await则会继续执行)

webpack是现代JavaScript应用程序中的静态模块打包工具,主要由打包入口entry作为起始点来构建依赖图,通过output来确认打包后输入文件的位置。
loader是用来识别不是js与json的其他类型语言,进行转换。plugin提供了更加强大的功能:打包优化,资源管理,环境变量注入等。还有model用来区
分是开发环境还是生产环境。

http:
1.超文本传输协议,默认端口80
2.无状态
3.应用层协议
4.get,post,put,delete,head,options,trace,connect
5.客户端向服务器发送请求,服务器返回响应

https:
1.安全的http协议
2.默认端口443
3.客户端向服务器发送请求,服务器返回响应

http缓存:提高网站的性能和用户的体验
1.强缓存:再次请求一个网站时,通过比对response头部的cache-control的max-age属性,判断是否需要重新请求,不需要则读取本地缓存。
2.协商缓存:客服端请求服务器时通过对比If-Modified-Since头部的时间,判断是否需要重新请求。返回304状态码。

tcp:三次握手(建立可靠的数据传输通道)。
1.刚开始时客户端和服务端都是处于close状态
2.第一次握手客户端发送同步报文,告诉服务器我具备发送信息的能力你能接收信息吗
3.第二次握手服务端发送同步报文,告诉客户端我具备发送信息和接收信息的能力。(这时候服务端不知道客户端是否具有接受信息的能力所以引入了第三次握手)
4.第三次握手客户端发送同步报文, 告诉服务端我具备接受信息的能力。
5.当三次握手流程结束后,客户端服务端都知道自己和对方具备发送、接收数据能力,建立连接完成,就可以进行数据传输了。
tcp:四次挥手(保证等数据传输完再关闭连接)。
1.第一次挥手:客户端向服务端发起关闭链接的请求
2.第二次挥手:服务端接受后可能数据还没有传输完成,所以发送报文告诉客户端需要等待传输完成,我已经知道你想关闭了。
3.第三次挥手:服务端数据传输完成之后,发送报文告诉客户端数据传输完成,服务端准备关闭链接了。
4.第四次挥手:告诉服务端收到了报文,等一会就关闭链接。

你可能感兴趣的:(前端面试准备)