【前言】
// 对象或者数组都是引用类型,判断相等是根据二者指向地址是否相同
let m = {}
m === {} // false
m === null // false
【解决方法】
1、使用 ES6 的 Object.keys() 方法,返回值是对象中属性名组成的数组(不含深层引用类型)。判断属性数组是否为零即可知道是不是空对象。
let n = { a:1,b:{c:2}, d:3}
let arr = Object.keys(n) // ["a", "b", "d"]
console.log(arr.length === 0) // false
2、转成字符串然后进行值的比较
let data = {};
let is_emp = JSON.stringify(data) === "{}";
console.log(is_emp) //true