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

相关推荐
lvchaoq11 分钟前
this指向面试代码输出题目合集
javascript·面试·职场和发展
醉城夜风~33 分钟前
MyBatis 基础CRUD全套实战学习笔记
笔记·学习·mybatis
你怎么知道我是队长1 小时前
JavaScript 函数 this 全解
开发语言·javascript·ecmascript
Flandern11111 小时前
从“能跑”到“可运营”:Agent Harness 工程化建设指南
学习·agent·claudecode·harness
hj2862511 小时前
Shell 脚本完整学习笔记
chrome·笔记·学习
m0_377108141 小时前
cmake学习
学习
码片向量1 小时前
状态空间模型SSM学习笔记
笔记·学习·ssm·语音增强·状态空间
luoyayun3612 小时前
【音频基础学习】第 5 天,理解音量、增益和分贝
学习·音视频·音频基础学习
万岳科技系统开发2 小时前
智慧医院小程序开发满足医疗机构多场景服务需求
数据库·学习·小程序
笑鸿的学习笔记3 小时前
C++笔记之内存映射、零拷贝与共享内存(学习三)-操作系统术语概念图
笔记·学习