1.请说一下vue的生命周期,created和mounted区别
- beforeCreate
- created
- beforeMount
- mounted
- beforeUpdate
- updated
- beforeDestroy
- destroyed
created和mounted区别:dom元素有没有渲染
2.请说几种你熟悉的排序方法,请说出冒泡排序的过程
冒泡排序
快速排序
插入排序
.......
冒泡排序的过程:冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
3.请说一下什么是节流和去抖(前端的性能优化)
https://www.jianshu.com/p/4f3e2c8f5e95
https://blog.csdn.net/aliguagua/article/details/78633309
4.请说一下tcp的三次握手,udp和tcp的区别是,tcp更安全的原因是
TCP(Transmission Control Protocol) 传输控制协议
TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:
位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)
Sequence number(顺序号码) Acknowledge number(确认号码)
第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;
第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包
第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。
完成三次握手,主机A与主机B开始传送数据。
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据.
TCP与UDP区别总结:
- 1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
- 2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
- 3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
- UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
- 4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
- 5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
- 6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道
5.jq的选择器有哪些,子选择器和子孙选择器是
6.jq为什么能实现.find().css()......的无限叠加
7,说一下闭包,为什么会出现闭包
8.es6的语法都用过哪些,function函数和箭头函数的区别,let和var的区别
https://blog.csdn.net/github_38851471/article/details/79446722
9.es6的generator了解过吗
10.关于和后台的交互跨域问题是如何实现的配置的是什么文件
11.关于和原生的交互是异步的吗
12.关于优化:内存泄漏问题
内存泄漏的几种情况:
- 1.闭包
- 2.意外的全局变量
- 未声明的全局变量,为了防止这种错误的发生,可以在你的 JavaScript 文件开头添加
'use strict';
语句 - 3.定时器setTimeout setInterval
- 当不需要setInterval或者setTimeout时,定时器没有被clear,定时器的回调函数以及内部依赖的变量都不能被回收,造成内存泄漏
- 4.如果在mounted/created 钩子中使用了$on,需要在beforeDestroy 中做对应解绑($off)处理
- 5.给DOM对象添加的属性是一个对象的引用
详情见https://blog.csdn.net/xiasohuai/article/details/82184918
13.设计模式都了解哪些