JavaScript如何判斷一個(gè)對(duì)象是空對(duì)象(附5種常見(jiàn)方法)
一、 使用 Object.keys() 方法
1、描述
Object.keys() 方法會(huì)返回一個(gè)對(duì)象自身的所有可枚舉屬性的數(shù)組。如果該數(shù)組的長(zhǎng)度為 0,則表示該對(duì)象是空的。
2、示例
function isEmpty(obj) { return Object.keys(obj).length === 0; } console.log(isEmpty({})); // true console.log(isEmpty({a: 1})); // false
二、 使用 Object.getOwnPropertyNames() 方法
1、描述
Object.getOwnPropertyNames() 方法返回一個(gè)對(duì)象自身的所有屬性(包括不可枚舉屬性,但不包括繼承的屬性)。如果該數(shù)組的長(zhǎng)度為 0,則表示該對(duì)象是空的。
2、示例
function isEmpty(obj) { return Object.getOwnPropertyNames(obj).length === 0; } console.log(isEmpty({})); // true console.log(isEmpty({a: 1})); // false
三、使用 JSON.stringify() 方法
1、描述
JSON.stringify() 方法將對(duì)象轉(zhuǎn)換為 JSON 字符串。如果對(duì)象為空,它會(huì)返回 "{}",可以通過(guò)與該字符串做比較來(lái)判斷對(duì)象是否為空。
2、示例
function isEmpty(obj) { return JSON.stringify(obj) === '{}'; } console.log(isEmpty({})); // true console.log(isEmpty({a: 1})); // false
四、使用 for...in 循環(huán)
1、描述
for...in 循環(huán)會(huì)遍歷對(duì)象的所有可枚舉屬性。如果循環(huán)執(zhí)行一次,則說(shuō)明對(duì)象不是空的。如果沒(méi)有執(zhí)行循環(huán),則說(shuō)明對(duì)象為空。
2、示例
function isEmpty(obj) { for (let key in obj) { if (obj.hasOwnProperty(key)) { return false; } } return true; } console.log(isEmpty({})); // true console.log(isEmpty({a: 1})); // false
五、使用 Object.entries() 方法
1、描述
Object.entries() 方法返回一個(gè)數(shù)組,數(shù)組中的每一項(xiàng)都是一個(gè) [key, value] 鍵值對(duì)數(shù)組。如果該數(shù)組的長(zhǎng)度為 0,則表示該對(duì)象為空。
2、示例
function isEmpty(obj) { return Object.entries(obj).length === 0; } console.log(isEmpty({})); // true console.log(isEmpty({a: 1})); // false
六、Tips
1、原型鏈上的屬性:以上方法都是檢查對(duì)象本身的屬性,而不考慮原型鏈上的屬性。如果您需要考慮原型鏈上的屬性,可以使用 for...in 循環(huán),并結(jié)合 hasOwnProperty 方法來(lái)排除繼承的屬性。
2、不包括繼承的屬性:例如,如果您使用 Object.keys() 或 Object.getOwnPropertyNames(),它們只會(huì)列出對(duì)象本身的屬性,而不會(huì)列出從原型繼承來(lái)的屬性。
七、總結(jié)
1、最常用和推薦的方法是使用 Object.keys() 或 Object.entries(),它們非常簡(jiǎn)潔且直觀。
2、如果您需要兼容老版本的 JavaScript 環(huán)境(如 ES5),則可以使用 for...in 循環(huán)或 Object.getOwnPropertyNames()。
到此這篇關(guān)于JavaScript如何判斷一個(gè)對(duì)象是空對(duì)象的文章就介紹到這了,更多相關(guān)JS判斷一個(gè)對(duì)象是空對(duì)象內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript 裝載iframe子頁(yè)面,自適應(yīng)高度
2009-03-03javascript中時(shí)區(qū)知識(shí)的整理UTC GMT問(wèn)題
這篇文章主要介紹了javascript中時(shí)區(qū)知識(shí)的整理UTC GMT問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10JS設(shè)置隨機(jī)出現(xiàn)2個(gè)數(shù)字的實(shí)例代碼
這篇文章給大家分享基于js設(shè)置隨機(jī)出現(xiàn)2個(gè)數(shù)字的實(shí)例代碼,在文章下面給分享js產(chǎn)生隨機(jī)數(shù)的幾個(gè)用法介紹,感興趣的朋友一起看看吧2017-07-07javascript實(shí)現(xiàn)了照片拖拽點(diǎn)擊置頂?shù)恼掌瑝Υa
這篇文章主要介紹了javascript實(shí)現(xiàn)了照片拖拽點(diǎn)擊置頂?shù)恼掌瑝Υa,效果非常不錯(cuò),這里推薦給大家,有需要的小伙伴可以參考下。2015-04-04JavaScript基于inquirer封裝一個(gè)控制臺(tái)文件選擇器
這篇文章主要介紹了JavaScript基于inquirer封裝一個(gè)控制臺(tái)文件選擇器,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-08-08JavaScript對(duì)象拷貝與賦值操作實(shí)例分析
這篇文章主要介紹了JavaScript對(duì)象拷貝與賦值操作,結(jié)合實(shí)例形式分析了javascript對(duì)象定義、拷貝、賦值等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-12-12用JavaScript做簡(jiǎn)易的購(gòu)物車的代碼示例
這篇文章主要介紹了用JavaScript做簡(jiǎn)易的購(gòu)物車的代碼示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10