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

相关推荐
飞飞鱼在摸鱼几秒前
前端转Agent开发 | JavaScript 从 0 到 1 完全指南
前端·javascript
Suprman22 分钟前
从 B/S 到 Electron:平面排版套料系统桌面版开发实战
javascript·平面·electron·排序算法
u01110267530 分钟前
Vue 3 统一右侧编辑面板:布局、滚动与底部操作区设计
javascript·vue.js·ecmascript
change_fate33 分钟前
Vue 3 Composable 函数指南
前端·javascript·vue.js
tryCbest36 分钟前
Vue3——第 9 篇:组件通信全攻略(下)——Provide / Inject 与事件总线
前端·javascript·vue.js
南某人急了40 分钟前
理论篇2——电容、电感的阻抗
学习·硬件工程
YouCanYouUp.2 小时前
AUTOSAR CAN 网络管理(NM / CanNm)深度解析:从概念到配置实现
学习
漫步人生走在路上2 小时前
外贸SEO中的品牌词与产品词策略:大卖家和小卖家的不同打法
大数据·javascript·网络·数据库·人工智能·搜索引擎
2301_801821712 小时前
NMVM短文本聚类模型学习
学习
用户298698530142 小时前
React 前端 Word 转图片:页面与元素级导出的工程实践
前端·javascript·react.js