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

相关推荐
HjhIron10 分钟前
CSS 3D 世界:从盒子模型到三维空间动画
javascript·css
VidDown23 分钟前
显卡处理视频技术详解:从硬解码到 NVENC,GPU 如何让视频处理起飞?
javascript·编辑器·音视频·视频编解码·视频
YangYang9YangYan31 分钟前
2026初入职场学习数据分析的价值
学习·数据挖掘·数据分析
guslegend40 分钟前
理论学习:什么是 Coding Agent?
学习
自传.43 分钟前
尚硅谷 Vibe Coding|第三章(1) Claude Code深度使用与进阶技巧 学习笔记
笔记·学习·尚硅谷·vibecoding
踏着七彩祥云的小丑1 小时前
Go学习第9天:并发编程 + 文件操作 + 正则表达式
学习·golang·正则表达式·go
代码不加糖1 小时前
Proxy能够监听到对象中的对象的引用吗?
开发语言·前端·javascript
有Li1 小时前
PTCMIL:基于提示 token 聚类的全切片图像多实例学习分析文献速递/多模态医学影像最新进展
论文阅读·学习·数据挖掘·聚类·文献·医学生
大家的林语冰1 小时前
连 Markdown 都不放过,Rust 在前端基建杀疯了,万物皆可“锈化“!
前端·javascript·markdown
想吃火锅10051 小时前
【前端手撕】instanceof
前端·javascript·原型模式