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

相关推荐
Drawing stars39 分钟前
JAVA后端 前端 大模型应用 学习路线
java·前端·学习
崇山峻岭之间42 分钟前
Matlab学习记录33
开发语言·学习·matlab
品克缤44 分钟前
Element UI MessageBox 增加第三个按钮(DOM Hack 方案)
前端·javascript·vue.js
小沐°1 小时前
vue-设置不同环境的打包和运行
前端·javascript·vue.js
科技林总2 小时前
【系统分析师】3.5 多处理机系统
学习
qq_419854052 小时前
CSS动效
前端·javascript·css
南村群童欺我老无力.2 小时前
Flutter应用鸿蒙迁移实战:性能优化与渐进式迁移指南
javascript·flutter·ci/cd·华为·性能优化·typescript·harmonyos
花哥码天下2 小时前
恢复网站console.log的脚本
前端·javascript·vue.js
芯思路3 小时前
STM32开发学习笔记之三【按键】
笔记·stm32·学习
奔跑的呱呱牛3 小时前
geojson-to-wkt 坐标格式转换
javascript·arcgis