1. [https://www.baidu.com:8899#a](https://www.baidu.com:8899#a)这个地址中包含 协议 、 域名 、 端口 、 哈希值 四个组成部分。(4分)
    2. location中 search 属性可以获取地址中问号传参的部分(2分)
    3. 浏览器的缓存机制,分为 强 缓存和 协商 缓存(4分)
    4. 同源策略是哪三者保持一致(3分) 协议 、 域名 、 端口
    5. ajax全称是 async javascript and XML (2分)
    6. let xhr = new XMLHttpRequest;

    1)xhr.onreadystatechange是什么事件(2分)监听readyState状态变化
    2)xhr.readyState有哪几个状态,每个状态都表示什么意思(10分)

    • 0 UNSENT 创造出来xhr实例就是0
    • 1 OPENED 执行open方法后就会由0变成1
    • 2 HEADERS_RECEIVED 响应头信息已经返回
    • 3 LOADING 响应主体信息正在处理
    • 4 DONE 响应主体信息已经返回

    3)如何给xhr实例设置请求头(2分)xhr.setRequestHeader([key],[value])
    4)怎么给xhr实例设置请求体(2分)xhr.send([请求体])
    5)如何获取某个响应头(2分)xhr.getResponseHeader([key])
    6)如何获取全部响应头(2分)xhr.getAllResponseHeaders()

    1. get与post请求有什么区别(8分)

    1.GET请求传递给服务器的信息,除了请求头传递以外,要求基于URL问号传参传递给服务器 xhr.open(‘GET’, ‘./1.json?lx=1&name=xxx’)
    2.POST请求要求传递给服务器的信息,是基于请求主体传递 xhr.send(‘lx=1&name=xxx’)

    • GET传递的信息不如POST多,因为URL有长度限制「IE->2KB」,超过这个长度的信息会被自动截掉,这样导致传递内容过多,最后服务器收到的信息是不完整的!!POST理论上是没有限制的,但是传递的东西越多,速度越慢,可能导致浏览器报传输超时的错误,所以实际上我们会自己手动做限制!!
    • GET会产生缓存「浏览器默认产生的,不可控的缓存」:两次及以上,请求相同的API接口,并且传递的参数也一样,浏览器可能会把第一次请求的信息直接返回,而不是从服务器获取最新的信息!!xhr.open(‘GET’, ‘./1.json?lx=1&name=xxx&_’+Math.random())
      在请求URL的末尾设置随机数,以此来清除GET缓存的副作用
    • POST相对于GET来讲更安全一些:GET传递的信息是基于URL末尾拼接,这个随便做一些劫持或者修改,都可以直接改了,而POST请求主体信息的劫持,没那么好做!!但是“互联网面前,人人都在裸奔”!!所以不管什么方式,只要涉及安全的信息,都需要手动加密「因为默认所有的信息传输都是明文的」!!
    1. fetch与axios的区别(4分)

    axios是基于promise封装的ajax类库 fetch是浏览器原生的API
    传参字段不一样,axios是放在params或者data里,fetch是放在body里
    node环境中不支持fetch,需要引入node-fetch文件才能支持
    axios中的配置和拦截器等功能,fetch中都没有。

    1. 列举几个解决跨域的方法(4分)

    JSONP、CORS设置响应头属性Access-Control-Allow-Origin:*

    1. 列举几个移动端常用单位(4分)

    vh/vw/rem/% calc

    1. DPR设备像素比是什么的比值(2分)

    设备像素比=设备的物理像素/逻辑像素

    1. 列举浏览器常用的本地缓存(6分)

    cookie/localStorage/sessionstorage

    1. cookie和localStorage的区别(6分)写上几条就行

    2. cookie * document.cookie
      + 兼容所有浏览器
      + cookie能存储的信息比较少:同源下最多可存储4KB内容
      + cookie是有过期时间 和 “域”的限制的「不能跨域访问」
      + cookie存储的信息非常不稳定
      + 浏览器的无痕浏览器或者隐私模式下是存储不上cookie的
      + 而且基于浏览器清理工具或者一些杀毒软件,清理垃圾信息的时候,即使没过期的cookie也可能被清除掉
      + cookie并不是单纯的本地存储,和服务器之间是有“猫腻”的:每一次向服务器发送请求,客户端都会在请求头中基于Cookies字段,把本地存储的cookie传递给服务器
      2. localStorage
      + 不兼容IE6~8
      + 同源下最多可存储5MB,比cookie存储的多很多
      + 永久本地存储,没有过期时间「除非手动清除或者卸载浏览器」;也会受到跨域和跨浏览器的限制;
      + localStorage的稳定性非常好,清除垃圾的时候对他没影响
      + localStorage和服务器没有半毛钱关系

    3. 如何获取、设置、删除localStorage(6分)

    localStorage.setItem([key],[value])
    localStorage.getItem([key])
    localStorage.removeItem([key])
    localStorage.clear()

    1. 列举4个HTTP状态码(4分)
    2. 如何获取cookie字段(2分)document.cookie
    3. 编写代码,使用axios发送get请求并传参(5分)
    4. 编写代码,使用axios发送post请求并传参(5分)
    5. 如何通过axios统一配置请求地址和请求头(4分)
    6. 编写代码使用fetch发送post请求并接收响应体(5分)