axios源码学习

1 判断一个对象是否普通对象

  • Symbol.toStringTag :可以修改Object.prototype.toString.call返回的后缀,普通对象自带该属性,不需要设置,如果设置说明该对象不是普通对象
  • Symbol.iterator:拥有该属性的对象可以使用for of进行遍历,普通对象没有该属性
javascript 复制代码
//Object.propotype 指向null 说明它是最后的Object
//
const isPlainObject = (val) => {
	const str = Object.prototype.toString.call(val)
	const type = str.slice(8,-1).toLowerCase();
	if (type !== 'object') {
		return false	
	}
	//是object
	const prototype = Object.getPropertyOf(val);
	return (prototype === Object.prototype || prototype === null || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val)
	
}

2

相关推荐
廾匸64024 分钟前
语义化标签
前端·javascript·html
汪汪队立大功12330 分钟前
selenium中执行javascript,是否等价于在浏览器console位置执行
javascript·selenium·测试工具
Rousson44 分钟前
硬件学习笔记--89 MCU主频对Uart波特率影响及采样点
笔记·单片机·学习
Fantasydg1 小时前
AJAX JSON学习
前端·学习·ajax
越努力越幸运5081 小时前
AJAX 学习第一天:axios、HTTP 基础、serialize 插件
学习·http·ajax
im_AMBER1 小时前
HTTP 02 会话 | 消息 | MIME类型
网络·笔记·网络协议·学习·http
lijun_xiao20091 小时前
Apache Hadoop-学习笔记1
hadoop·学习·apache
q***72872 小时前
Golang 构建学习
开发语言·学习·golang
蓝桉~MLGT2 小时前
Python学习历程——文件
python·学习·策略模式
循环过三天2 小时前
7.5、Python-匿名函数lambda
笔记·python·学习