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

相关推荐
墨澜逸客21 分钟前
《华胥文化》百回大纲
学习·其他·百度·学习方法·新浪微博
Stella Blog21 分钟前
狂神Java基础学习笔记Day04
java·笔记·学习
一只机电自动化菜鸟26 分钟前
一建机电备考笔记(17) 常用设备—通用设备1(含考频+题型)
笔记·学习·职场和发展·生活·学习方法
深蓝海拓30 分钟前
基于QtPy (PySide6) 的PLC-HMI工程项目(十)框架初成的阶段总结
网络·笔记·python·学习·ui·plc
菜鸟‍35 分钟前
【论文学习】Transformer中的数据流动
深度学习·学习·transformer
漂流瓶jz1 小时前
运行时vs编译时:CSS in JS四种主流方案介绍和对比
前端·javascript·css
fmk10231 小时前
FastAPI + LangChain Agent 从零入门学习笔记
学习·langchain·fastapi
钮钴禄·爱因斯晨2 小时前
他到底喜欢我吗?赛博塔罗Java+前端实现,一键解答!
java·开发语言·前端·javascript·css·html
Watermelo6172 小时前
理解 JavaScript 中的“ / ”:路径、资源与目录、nginx配置、请求、转义的那些事
前端·javascript·vue.js·chrome·nginx·正则表达式·seo
词元Max2 小时前
Java 转 AI Agent 开发学习路线(2026年3月最新版)
java·人工智能·学习