當需要判斷引數是否為空時,總希望 js 能夠提供原生的判斷方法,可惜並沒有,只能自己封裝了。
function
isempty(obj)
if
(array.prototype.isprototypeof(obj) && obj.length === 0)
if
(object.prototype.isprototypeof(obj) && object.keys(obj).length === 0)
return
false
;
}
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
(
var
key
in
obj)
}
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轉...