測試空 JavaScript 物件
處理 AJAX 回應時,常常會遇到空對象,例如 var a = {};。確定物件是否為空對於各種應用程式任務至關重要。
Object.hasOwn() 與 for...in 迴圈:
對於 ECMAScript 2022 環境, Object.hasOwn() 方法可以與 for...in循環結合使用來檢查是否為空物件:
function isEmpty(obj) { for (const prop in obj) { if (Object.hasOwn(obj, prop)) { return false; } } return true; }
此方法會遍歷物件本身的所有屬性,如果找到任何屬性,則表示該物件非空物件。
區分空物件和物件沒有自己的屬性:
如果您需要區分類似 {}的空對象和沒有自己的屬性(例如日期)的對象,可以執行額外的類型檢查:
function isEmptyObject(value) { if (value == null) { return false; // null or undefined } if (typeof value !== 'object') { return false; // boolean, number, string, etc. } const proto = Object.getPrototypeOf(value); if (proto !== null && proto !== Object.prototype) { return false; // consider 'Object.create(null)' } return isEmpty(value); }
替代方法:
如果您無權存取ES 2022 功能,您可以使用舊版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中文網其他相關文章!