/ javaScript

axios - 3 - 工具函数

console.info

该系类文章旨在研究 axios 的实现 。在研究源码的基础上,去理解 axios 是如何实现 ajax 请求并更好的去使用这个库。

首先先大致了解下源码内都使用了哪些方法,以便在之后看源码的过程中,能确定该方法的效果。

工具函数

对应文件为 lib/utils.js

该文件主要定义了一些会在实现 axios 中用到的一些工具函数:

util 下的方法归总

一些关于图片中出现的不常用的属性的解释如下,具体的内容点击名字即可查看:

  1. ArrayBuffer:二进制数据缓冲区
  2. ArrayBufferView:二进制数据视图数组
  3. Blob:二进制数据的基本对象,主要表示文件
  4. FormData:表单数据
  5. URLSearchParams:处理 URL 参数串的方法

方法的功能:

方法 参数 说明
isArray obj 判断传入对象是否是数组
isArrayBuffer obj 判断传入对象是否是二进制数组缓存区
isFormData obj 判断传入对象是否是表单对象
isArrayBufferView obj 判断传入对象是否是二进制数组缓存区的视图对象
isString obj 判断传入对象是否是字符串
isNumber obj 判断传入对象是否是数值
isUndefined obj 判断传入对象是否是 undefined
isObject obj 判断传入对象是否是为对象(不包含 null)
isDate obj 判断传入对象是否是为时间对象
isFile obj 判断传入对象是否是为文件对象
isBlob obj 判断传入对象是否是为二进制数据的基本对象
isFunction obj 判断传入对象是否是为函数
isURLSearchParams obj 判断传入对象是否是为 URLSearchParams 对象
isStandardBrowserEnv / 判断当前是否是标准的浏览器
forEach obj,fn 若 obj 为数组,则使用 for 循环数组内的每一项,传入 fn 中执行,若为单纯为对象,则使用 for in 循环对象下的每一个属性
merge obj,obj... 合并传入的对象,不会改变原对象,返回新对象,若传入对象中有相同的属性,则后面的覆盖前面
extend a,b,thisArg 将 b 中属性添加到 a 上,若 b 中属性为函数,则在 thisArg 的上下文下执行,将返回值赋值到 a 上