前端小知识

256 阅读3分钟

1.TCP和UDP的区别

  1. TCP 是面向连接的,udp 是无连接的即发送数据前不需要先建立链接。
  2. TCP 提供可靠的服务。也就是说,通过 TCP 连接传送的数据,无差错,不丢失,不重复,且按序到达; UDP 尽最大努力交付,不保证可靠交付。
  3. 面向连接,不会丢失数据因此适合大数据量的交换。
  4. TCP 是面向字节流,UDP 面向报文,并且网络出现拥塞不会使得发送速率降低(因此会出现丢包,对实时的应用比如 IP 电话和视频会议等)。
  5. TCP 只能是 1 对 1 的,而UDP 支持 1 对 1,1 对多。
  6. TCP 的首部较大为 20 字节,而 UDP 只有 8 字节。
  7. TCP 是面向连接的可靠性传输,而 UDP 是不可靠的。

2.js中的堆和栈,栈和队列有什么区别

堆:队列优先,【先进先出】;由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。

栈:【先进后出】;动态分配的空间 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。

栈和队列的区别:

  1. 栈只允许在表尾一端进行插入和删除,队列只允许在表尾一端进行插入,在表头一端进行删除。
  2. 栈是先进后出,队列是先进先出。

3.http和https的区别

http:

  • 明文传输,
  • 数据未加密,
  • 安全性较差,
  • 响应速度比https快,
  • HTTP使用TCP三次握手建立连接
  • 只有3个包 https:
  • 通过(SSL+HTTP)数据传输,
  • 过程加密,
  • 安全性较好
  • 一共12个包,除HTTP三个以外,需加上ssl握手的9个一共12 个包
  • 需要申请证书,需要一定费用
  • 更耗费服务器资源,是建立在SSL/TLS之上的HTTP协议

4.px,em,rem,vw,vh区别

px:px就是pixel的缩写,意为像素

em:参考物是父元素的font-size,具有继承的特点,本身有font-size,按照自身计算

vw: css3新单位,viewpoint width的缩写,视窗宽度,1vw等于视窗宽度的1%。 举个例子:浏览器宽度1200px, 1 vw = 1200px/100 = 12px

vh: css3新单位,viewpoint height的缩写,视窗高度,1vh等于视窗高度的1%。 举个例子:浏览器高度900px, 1 vh = 900px/100 = 9px。

5.defer和async的区别

都是改变脚本执行的行为

defer:延迟,表示脚本会被延迟到整个页面都解析完毕后再运行。

因此在 script 元素中设置defer属性,相当于告诉浏览器立即下载,但延迟执行。执行按按照先后顺序

async: 异步,外部脚本文件,并告诉浏览器立即下载文件,适用于互不干扰的脚本

阻塞,出现白屏问题一般也可以用defer和async进行处理

6. WebSocket和HTTP有什么区别

相同点

  • 都是一样基于TCP的,都是可靠性传输协议
  • 都是应用层协议

不同点

  • WebSocket是双向通信协议,模拟Socket协议,可以双向发送或接受信息。HTTP是单向的
  • WebSocket是需要握手进行建立连接的(相对HTTP来说,WebSocket是一种持久化的协议。它会基于HTTP协议,来完成一部分握手,HTTP握手部分完成,协议升级为WebSocket

直达WebSocket