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

相关推荐
咸甜适中10 分钟前
rust语言学习笔记Trait(十七)Send、Sync(线程间数据所有权)
笔记·学习·rust
H__Rick14 分钟前
C51学习-DAY7
单片机·嵌入式硬件·学习·51单片机
dtq042418 分钟前
C语言刷题函数1-判断素数(分支语句,函数两种方法)
c语言·开发语言·学习
chushiyunen21 分钟前
vue export default
前端·javascript·vue.js
尘汐筠竹23 分钟前
Day1-2 学习笔记:在 AMD 云环境上部署 Gemma 4 大模型
笔记·学习·datawhale·amdev
Litluecat28 分钟前
配合多角色提示语4,学习AI漫剧(刚开始学)
人工智能·学习·计算机视觉
zzqssliu29 分钟前
Next.js图片自适应压缩:跨境站点图片加载提速代码方案
linux·javascript·ubuntu
AOwhisky31 分钟前
学习自测与解析:Redis系列第一期与第二期核心知识点详解
运维·数据库·redis·学习·云计算
zhangrelay36 分钟前
个体智能大模型使用的主观数据复盘-节选-2026-
笔记·学习·课程设计
lunzi_082641 分钟前
【学习笔记】《Python编程 从入门到实践》第9章:类、继承、组合与面向对象编程
笔记·python·学习