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

相关推荐
wuhen_n3 小时前
LeetCode -- 15. 三数之和(中等)
前端·javascript·算法·leetcode
石像鬼₧魂石4 小时前
HexStrike-AI人工智能 渗透测试学习(Metasploitable2 192.168.1.4)完整流程总结
学习·ubuntu
非凡ghost4 小时前
MusicPlayer2(本地音乐播放器)
前端·windows·学习·软件需求
脾气有点小暴4 小时前
scroll-view分页加载
前端·javascript·uni-app
蓝桉~MLGT4 小时前
Ai-Agent学习历程—— 阶段1——环境的选择、Pydantic基座、Jupyter Notebook的使用
人工智能·学习·jupyter
前端开发爱好者5 小时前
VSCode 重磅更新!要收费了?
前端·javascript·visual studio code
杰米不放弃6 小时前
AI大模型应用开发学习-26【20251227】
人工智能·学习
wuhen_n6 小时前
LeetCode -- 1:两数之和(简单)
javascript·算法·leetcode·职场和发展
执笔论英雄6 小时前
【RL】Megatron使学习forward_backward_func返回值
学习
假装我不帅7 小时前
jquery.nicescroll使用
前端·javascript·jquery