確定 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中文網其他相關文章!