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

高分请说明下,JS如何判断一个对象是空对象(不是null哈)
最新回答
咸鱼味的猫

2026-04-17 23:48:57

判断一个对象是否为空(非null),通常人们会想到使用 Object.keys(obj).length === 0 或者 JSON.stringify(obj) === "{}"。然而,这些方法并不严谨,甚至 for-in 循环也会出现问题。

当对象的key为symbol时,Object.keys(obj) 获取到的长度仍旧为0,如图所示,结果仍为"{}",这表明存在一定的漏洞。

如果对象的属性不可枚举,for-in 循环就会失去作用。

综上所述,最稳妥的方法是使用 Reflect.ownKeys() 函数。此函数能获取到对象的所有可枚举属性以及不可枚举属性,从而避免了上述问题,确保了判断的准确性。