js判斷空對象的實例(超簡單)
最近項目遇到判斷空對象的一個問題,查閱相關資料再進行總結(jié)一下。
判斷空對象不比判斷空字符串之類的,因為空對象也是一個對象,需要單獨分配內(nèi)存,而不是像字符串那樣為空時就是大鍋飯,大家都相等,如下代碼:
如上代碼可以發(fā)現(xiàn),無論是通過對象字面量方式創(chuàng)建的空對象還是通過Object構(gòu)造函數(shù)創(chuàng)建的空對象,彼此之間都是不相等的。
1.將對象轉(zhuǎn)換為字符串進行比較
這種方法很不推薦,但也確實是最容易想到的,主要使用JSON.stringify()這個方法對對象進行強轉(zhuǎn),貼出來僅供一看:
var a={}; var b=new Object(); console.log("對象字面量的比較結(jié)果:"+(JSON.stringify(a)=="{}")) console.log("構(gòu)造函數(shù)的比較結(jié)果:"+(JSON.stringify(b)=="{}"))
我們可以得到兩種空對象轉(zhuǎn)換為字符串后的比較都為真,可以解決這個問題,但是不推薦,下面說第二種方法。
2.for in循環(huán)
使用for in循環(huán)可以遍歷所有屬性以次判斷對象是否為空對象:
var a={}; var b=new Object(); function isEmptyObject(obj){ for(var key in obj){ return false }; return true }; if(isEmptyObject(a)){ alert("a是個空對象") } if(isEmptyObject(b)){ alert("b是個空對象") }
使用for in循環(huán)對對象進行循環(huán)時循環(huán)屬性,相應的對數(shù)組進行循環(huán)時循環(huán)的是下標,如:
var b = ["hello","my","world"] for(var index in b){ console.log(b[index]); } //hello my world
以上就是小編為大家?guī)淼模祟})全部內(nèi)容了,希望大家多多支持腳本之家~
相關文章
JavaScript自定義方法實現(xiàn)trim()、Ltrim()、Rtrim()的功能
去除字符串兩端的空格,是字符串處理非常常用的方法如何trim() 、Ltrim() 、Rtrim(),可惜的是javascript中無此方法,下面有個不錯的自定義教程感興趣的朋友可以參考下2013-11-11js實現(xiàn)iframe跨頁面調(diào)用函數(shù)的方法
這篇文章主要介紹了js實現(xiàn)iframe跨頁面調(diào)用函數(shù)的方法,實例展示了iframe中父頁面調(diào)用子頁面和子頁面調(diào)用父頁面的實現(xiàn)技巧,非常具有實用價值,需要的朋友可以參考下2014-12-12