判斷方法:1、用“Object.keys()”判斷,語(yǔ)法“Object.keys(obj).length === 0&&obj.constructor===Object ”,返回true表示為空;2、將對(duì)象轉(zhuǎn)化為json字符串,判斷該字符串是否為“{}”即可;3、用isEmptyObject()判斷,語(yǔ)法“$.isEmptyObject(data)”,返回true表示為空。
前端(vue)入門到精通課程:進(jìn)入學(xué)習(xí)
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點(diǎn)擊使用
本教程操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。
判斷對(duì)象是否為空,就是判斷對(duì)象是否為空對(duì)象。
ES6 判斷是否為空對(duì)象的各種方法
1、使用ES6的Object.keys()方法
Object.keys()
是ES6的新方法, 返回值也是對(duì)象中屬性名組成的數(shù)組,包括對(duì)象自身的(不含繼承的)所有可枚舉屬性(不含 Symbol 屬性)的鍵名。
Object.keys(obj).length === 0 && obj.constructor === Object // true表示為空對(duì)象,false為非空對(duì)象
登錄后復(fù)制
缺點(diǎn): 部分瀏覽器不支持,需要通過(guò) babel 類插件轉(zhuǎn)為 ES5。使用范例如下:
var data = {}; var arr = Object.keys(data); alert(arr.length == 0);//true 即為空對(duì)象 var datas={a:1,b:2}; var aRR = Object.keys(datas); console.log(aRR) --> ['a','b']
登錄后復(fù)制
2、將對(duì)象轉(zhuǎn)化為json字符串,再判斷該字符串是否為"{}"
var data = {}; var b = (JSON.stringify(data) == "{}"); alert(b);//true
登錄后復(fù)制
3、for in 循環(huán)判斷
var obj = {}; var b = function() { for(var key in obj) { return false; } return true; } alert(b());//true
登錄后復(fù)制
4、jquery的isEmptyObject方法
此方法是jquery將3方法(for in)進(jìn)行封裝,使用時(shí)需要依賴jquery
var data = {}; var b = $.isEmptyObject(data); alert(b);//true
登錄后復(fù)制
5、Object.getOwnPropertyNames()方法
此方法是使用Object對(duì)象的getOwnPropertyNames方法,獲取到對(duì)象中的屬性名,存到一個(gè)數(shù)組中,返回?cái)?shù)組對(duì)象,我們可以通過(guò)判斷數(shù)組的length來(lái)判斷此對(duì)象是否為空
注意:此方法不兼容ie8,其余瀏覽器沒有測(cè)試。
var data = {}; var arr = Object.getOwnPropertyNames(data); alert(arr.length == 0);//true
登錄后復(fù)制
【