判断对象是否是空对象:
for...in
循环判断:var obj = {}; var result = function() { for(var key in obj) { return false; } return true; }
- ES6 的
Object.keys()
方法:var data = {}; var arr = Object.keys(data); alert(arr.length == 0);//true
Object.getOwnPropertyNames()
方法:var data = {}; var arr = Object.getOwnPropertyNames(data); alert(arr.length == 0);
- 将 json 对象转化为 json 字符串,再判断该字符串是否为
{}
:var data = {}; var result = (JSON.stringify(data) == "{}");
判断对象是否有某个属性:
- 使用 in 关键字,该方法可以判断对象的自有属性和继承来的属性是否存在。
const obj = {name: 'Lee’} if ('name' in obj) { return true }
- 使用对象的
hasOwnProperty()
方法,该方法只能判断自有属性是否存在,对于继承属性会返回 false。const obj = {name: 'Lee’} if (obj.hasOwnProperty('name')) { return true }
判断两个对象是否相等:
- 把两个对象转成字符串进行对比,只适用于键值顺序都完全对应的对象。
JSON.stringify(object1) === JSON.stringify(object2)
Object.entries()
方法,只适用于键值顺序都完全对应的对象。Object.entries(object1).toString() === Object.entries(object2).toString()