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

相关推荐
成都渲染101云渲染66664 小时前
如何在3ds Max中实现更快、更高质量的渲染
前端·javascript·人工智能
AI云海6 小时前
利用好手机这个工具-碎片化学习
学习
SRET8 小时前
Mineradio 沙盒隔离安装完全指南 | 一键安全运行 Electron 应用!!!
javascript·经验分享·安全·electron·aigc·音视频·ai编程
全栈前端老曹8 小时前
【MongoDB】安全与权限管理 —— 用户认证、角色权限、SSL 加密
前端·javascript·数据库·安全·mongodb·nosql·ssl
β添砖java9 小时前
2025最新快速构建企业级虚拟专用网络环境学习笔记
笔记·学习
free3511 小时前
作用域链与 Environment:变量查找、遮蔽和赋值怎么实现
javascript
YHL12 小时前
🤖 Agent 智能体开发实战 · 第一课:Tool Use —— 让大模型自动干活
前端·javascript·人工智能
HUMHSX13 小时前
Vue 组件通信核心知识点梳理
javascript·vue.js·ecmascript
WZF-Sang13 小时前
网络基础——2
服务器·网络·c++·学习·网络编程·php
风止何安啊13 小时前
🚦 前端并发请求 “交通管制”:别让你的接口堵成早高峰
前端·javascript·面试