⭐ 介绍一下你对浏览器内核的理解

主要分成两部分:

渲染引擎(layout engineer或Rendering Engine)和JS引擎。

详细文章:浏览器内核的解析和对比

graph LR;
浏览器内核-->渲染引擎
浏览器内核-->JS引擎

判断浏览器类型

function isAndroid() {
  return /Android/.test(navigator.userAgent);
}
function isiPhone() {
  return /iPhone/.test(navigator.userAgent);
}
function isiPad() {
  return /iPad/.test(navigator.userAgent);
}
function isiOS() {
  return /(iPhone)|(iPad)/i.test(navigator.userAgent);
}

⭐ Ajax、Axios、Fetch 有啥区别?

介绍下 http1.0http1.1http2.0 协议的区别?

首先说 http1.0

它的特点是每次请求和响应完毕后都会销毁 TCP 连接,同时规定前一个响应完成后才能发送下一个请求。这样做有两个问题:

  1. 无法复用连接

    每次请求都要创建新的 TCP 连接,完成三次握手和四次挥手,网络利用率低

  2. 队头阻塞

    如果前一个请求被某种原因阻塞了,会导致后续请求无法发送。

然后是 http1.1

http1.1 是 http1.0 的改进版,它做出了以下改进: