JS高级高频面试题2

前端面试题

25、什么是事件流

: 事件传播的顺序,事件捕获 => 目标事件 => 事件冒泡

26、如何阻止冒泡和默认行为

: 阻止冒泡和捕获  e.stopPropagation()
    阻止默认行为   e.preventDefault() 

27、原生注册事件的方式有哪些?区别是什么

: 注册方式
		  1. on + 事件名称
		  2. addEventListener
		区别: 
			1. 使用on注册事件,同一个元素只能注册一个同类型事件,否则会覆盖。
			2. addEventListener可以注册同一事件多次,不会被覆盖。

28、http和https的区别

:
  1.https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
  2.http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。
  3.http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是4434.http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

29、get 和post的区别

: get
			1. 在url后面拼接参数,只能以文本的形式传递数据
			2. 传递的数据量小,4KB左右
			3. 安全性低
			4. 速度快
			5. 会缓存数据
	post
		    1. 安全性比较高
			2. 传递数据量大,请求数据长度无要求
			3. 请求不被缓存,也不保留在浏览器历史记录里

30、项目中常遇到的状态码有哪些

: 200  请求成功,  2开头的异步表示请求成功
		304  请求被允许,但请求内容没有改变, 3开头的一般请求完成
		400  请求格式错误,  4开头的一般表示请求错误
		404  请求的资源(网页)不存在,  
		500  内部服务器错误,  5开头的一般都是指服务器错误

31、jsonp的原理?以及优缺点

原理:

  1. img,script等标签的src属性,它不受同源策略限制
  2. JSONP请求数据时,服务端返回的是一段可执行的javascript代码

优点:

  1. 可以获取不同域下的数据
  2. 客户端可以自定义函数来自动处理返回来的数据

缺点:

  1. 只支持get
  2. 需要服务端做一些处理,配合

32、什么是同源策略?怎么解决跨域问题

: 同源策略: 同源是指域名、协议、端口完全相同,不同源则跨域。
   解决跨域的方法: 
			1. 通过jsonp跨域
			2. 服务器实现跨域资源共享(CORS)接口
			3. nginx代理跨域

33、你对WebSocket了解哪些

: WebSocket 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯,它建立在TCP之上,同HTTP一样通过TCP来传输数据,但是它和HTTP最大不同是:
	1. WebSocket是一种双向通信协议,在建立连接后,WebSocket服务器和Browser/Client Agent都能主动的向对方发送或接收数据,就像Socket一样;
	2. WebSocket需要类似TCP的客户端和服务器端通过握手连接连接成功后才能相互通信。

34、在地址栏输入网址,到数据返回的过程是什么?

:  1. 输入url地址后,首先进行DNS解析,将相应的域名解析为IP地址。
     2. 根据IP地址去寻找相应的服务器。
     3. 与服务器进行TCP的三次握手,建立连接。
     4. 客户端发送请求,找到相应的资源库。
     5. 客户端拿到数据,进行相应的渲染。

35、原生 ajax 请求的步骤

答:1.创建异步对象 var xhr = new HTMLHttpRequest()
    2.设置请求行  xhr.open()
    3.设置请求头  xhr.setRequestHeader()   get请求没有请求头
    4.设置请求体  xhr.send      get请求没有请求体,参数为null
    5.监视异步对象的状态变化   xhr.onreadystatechange(){}

36、怎么理解三次握手

字段	      含义
URG	   紧急指针是否有效。为1,表示某一位需要被优先处理
ACK	   确认号是否有效,一般置为1PSH	   提示接收端应用程序立即从TCP缓冲区把数据读走。
RST	   对方要求重新建立连接,复位。
SYN	   请求建立连接,并在其序列号的字段进行序列号的初始值设定。建立连接,设置为1
FIN    希望断开连接。

1、三次握手
    第一次握手:建立连接时,客户端发送syn包到服务器,等待服务器确认。
    第二次握手:服务器收到syn包,必须确认客户的SYN,同时自己也发送一个SYN包(syn=y)到客户端
    第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入(TCP连接成功)状态,完成三次握手
   (通俗:主机1告诉主机2,我可以向你请求数据吗。主机2告诉主机1,可以请求数据。主机1告诉主机2,那我来请求数据了,请求完成,实现三次握手)

37、怎么理解四次挥手

1、四次挥手
    第一次分手:主机1(可以使客户端,也可以是服务器端)向主机2发送一个FIN报文段;此时,主机1进入FIN_WAIT_1状态;这表示主机1没有数据要发送给主机2了。
    第二次分手:主机2收到了主机1发送的FIN报文段,向主机1回一个ACK报文段,主机1进入FIN_WAIT_2状态;主机2告诉主机1,我“同意”你的关闭请求。
    第三次分手:主机2向主机1发送FIN报文段,请求关闭连接,同时主机2进入LAST_ACK状态。
    第四次分手:主机1收到主机2发送的FIN报文段,向主机2发送ACK报文段,然后主机1进入TIME_WAIT状态;主机2收到主机1ACK报文段以后,就关闭连接;此时,主机1等待2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,主机1也可以关闭连接了。
    (通俗:主机1告诉主机2,我没有数据要发送了,希望断开连接。主机2接到请求后说,同意断开。主机2告诉主机1可以关闭连接了。主机1接到可以关闭的指令后,关闭连接,四次挥手完成)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值