JS如何判断一个对象是空对象(不是null哈)
发布网友
发布时间:2024-09-08 17:36
我来回答
共1个回答
热心网友
时间:2024-09-30 17:05
判断一个对象是否为空(非null),通常人们会想到使用 Object.keys(obj).length === 0 或者 JSON.stringify(obj) === "{}"。然而,这些方法并不严谨,甚至 for-in 循环也会出现问题。
当对象的key为symbol时,Object.keys(obj) 获取到的长度仍旧为0,如图所示,结果仍为"{}",这表明存在一定的漏洞。
如果对象的属性不可枚举,for-in 循环就会失去作用。
综上所述,最稳妥的方法是使用 Reflect.ownKeys() 函数。此函数能获取到对象的所有可枚举属性以及不可枚举属性,从而避免了上述问题,确保了判断的准确性。