axios -- 3:工具函数

console.info

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

工具函数

对应文件为 lib/utils.js

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

思维导图

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

  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][8] 对象

isStandardBrowserEnv

/

判断当前是否是标准的浏览器

forEach

obj,fn

若 obj 为数组,则使用 for 循环数组内的每一项,传入 fn 中执行,若为单纯为对象,则使用 for in 循环对象下的每一个属性

merge

obj,obj...

合并传入的对象,不会改变原对象,返回新对象,若传入对象中有相同的属性,则后面的覆盖前面

extend

a,b,thisArg

将 b 中属性添加到 a 上,若 b 中属性为函数,则在 thisArg 的上下文下执行,将返回值赋值到 a 上