js 判斷是否為空物件 空陣列

2022-02-14 07:50:23 字數 1453 閱讀 4687

當需要判斷引數是否為空時,總希望 js 能夠提供原生的判斷方法,可惜並沒有,只能自己封裝了。

functionisempty(obj)

if(array.prototype.isprototypeof(obj) && obj.length === 0)

if(object.prototype.isprototypeof(obj) && object.keys(obj).length === 0)   

returnfalse;

}

isprototypeof()方法用於測試乙個物件是否存在於另乙個物件的原型鏈上。即判斷 object 是否存在於 obj 的原型鏈上。需要注意的是,js 中一切皆是物件,也就是說,object 也存在於陣列的原型鏈上,因此這裡陣列需要先於物件檢驗。

ps:isprototypeof 和 instanceof operator是不一樣的。在表示式object instanceof afunction 中,檢測的是afunction.prototype是否在object的原型鏈中,而不是檢測afunction 自身。

該方法屬於 es3 標準,現代瀏覽器均支援,包括 ie。  <( ̄︶ ̄)>

object.keys()方法會返回乙個由給定物件的自身可列舉屬性組成的陣列,陣列中屬性名的排列順序和使用for...in迴圈遍歷該物件時返回的順序一致、

該方法屬於 es5 標準,ie9 以上和其它現代瀏覽器均支援。如果你很不幸的需要相容 ie9以下瀏覽器,那就用 for...in 代替吧。但是,for...in 會將物件原型鏈上的屬性也列舉出來,因此還需要加個判斷。

for(varkeyinobj)

}

hasownproperty()屬於 es3 標準,現代瀏覽器均支援,包括 ie。可以放心使用啦。  <( ̄︶ ̄)>

還有一種很特別的檢驗空物件或空陣列的方法,就是使用json.stringify()

json.stringify(obj) ==='{}';

json.stringify(obj) ===''

js 判斷是否為空物件 空陣列

js 判斷是否為空物件 空陣列 當需要判斷引數是否為空時,總希望 js 能夠提供原生的判斷方法,可惜並沒有,只能自己封裝了。isempty function obj 檢驗陣列 if array.prototype.isprototypeof obj obj.length 0 檢驗物件 if obje...

js 判斷是否為空物件 空陣列

判斷引數是否為空函式 isempty function obj 檢驗陣列 if array.prototype.isprototypeof obj obj.length 0 檢驗物件 if object.prototype.isprototypeof obj object.keys obj leng...

js判斷物件是否為空

在php中空陣列跟和空物件,在進行布林值驗證是是false,但是js中陣列或物件不管是否有屬性或值存在統統任務是true。在編寫程式的過程中這是很蛋疼的。為了解決這個問題只能自己寫方法進行判斷。下面總結一下幾種方法 用es6的keys方法搞定 function isempty obj 利用json轉...