记一次电话面试--携程

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.设计模式都了解哪些

https://www.jianshu.com/p/d8c1c426d028

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值