龙空技术网

JS如何判断一个对象是空对象(不是null哈)

剁椒鱼鳞 57

前言:

目前兄弟们对“js为空或不是对象”大概比较关心,各位老铁们都需要学习一些“js为空或不是对象”的相关内容。那么小编在网上搜集了一些对于“js为空或不是对象””的相关资讯,希望小伙伴们能喜欢,看官们快快来了解一下吧!

已知一个对象(Object),如何判断是一个空对象,即{ }。很多人会想到采用Object.keys(obj).length === 0,或者JSON.stringify(obj) === "{}",这些都是不严谨的,甚至for-in都是错误的。

Object.keys

如果key为symbol的话,object.keys拿到的长度仍旧为0

JSON.stringify

见上图,拿到的仍旧为"{}",所以存在漏洞

for-in循环

如果对象设置不可枚举,那么for-in进而就成了摆设了

Reflect.ownKeys()

综上,最靠谱的方案就是Reflect.ownKeys()。

标签: #js为空或不是对象 #jsforin对象 #js对象null #js判断空json #js判断对象是否为