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

相关推荐
摆烂老大2 小时前
论文学习 | Expert Systems With Applications2026 | 可微分建模:S4D-HBV
python·学习·水文
独立开发之道2 小时前
Three.js 创建 VR 内容:四步把一个普通 3D 场景送进头显
javascript·3d·vr
喵的前端路2 小时前
《EDVAC》学习记录(第一部分)
学习
javartisan3 小时前
AI 大模型工程师完整学习目录
人工智能·学习
Coodor3 小时前
在前端如何转换IC卡卡号格式
前端·javascript·nfc·卡号格式
百慕大三角3 小时前
给 SPA 加页面切换动画:View Transitions API 从入门到实战
前端·javascript
dadaobusi3 小时前
学习:一些互联概念的澄清
学习
zyf1044164 小时前
暑期实践日志 Day45:梳理第五章内容,完善成果总结
学习·计算机网络·剪辑·暑期实践·课题任务
Hilaku4 小时前
Bun 真的能取代 Node.js 吗?
前端·javascript·程序员
m4Rk_4 小时前
【论文阅读】Agent 记忆机制(56):R2D2——把历史网页轨迹变成可搜索地图与反思记忆
论文阅读·人工智能·学习·开源·github