确定 JavaScript 对象是否为空
要确定 JavaScript 对象是否为空,可以使用多种方法和注意事项。一种方法涉及结合使用 for...in 循环和 Object.hasOwn (ECMA 2022 )。此循环迭代对象自身的属性,如果存在则返回 false:
function isEmpty(obj) { for (const prop in obj) { if (Object.hasOwn(obj, prop)) { return false; } } return true; }
另一种方法区分 tussen 空对象和其他缺少自己属性的对象。这可以通过类型检查来实现:
function isEmptyObject(value) { if (value == null) { return false; } if (typeof value !== 'object') { return false; } const proto = Object.getPrototypeOf(value); if (proto !== null && proto !== Object.prototype) { return false; } return isEmpty(value); }
值得注意的是,与 Object.prototype 进行比较可能会忽略跨领域对象。此外,不鼓励使用 Object.keys(obj).length,因为它效率低下,需要创建数组。
为了与旧版 JavaScript 引擎兼容,可以将 Object.hasOwn 替换为 Object.prototype.hasOwnProperty.call :
function isEmpty(obj) { for (var prop in obj) { if (Object.prototype.hasOwnProperty.call(obj, prop)) { return false; } } return true; }
各种库提供专门设计用于检查空的函数对象:
以上是如何有效判断JavaScript对象是否为空?的详细内容。更多信息请关注PHP中文网其他相关文章!