js检测空对象{}的常用方式

新版本ECMAScript 5+:

let checkEmptyObj = v => {
  return v && Object.keys(v).length === 0 && v.constructor === Object;
};

checkEmptyObj({}); // true

低于ECMAScript 5的版本:

var checkEmptyObj = function (v) {
  for(var k in v) {
    if(v.hasOwnProperty(k)) {
      return false;
    }
  }

  return JSON.stringify(v) === JSON.stringify({});
}

checkEmptyObj({}); // true

在一些流行框架中:

// jQuery
jQuery.isEmptyObject({}); // true

// AngularJS
angular.equals({}, {}); // true

// lodash
_.isEmpty({}); // true

(版权归cpury.com所有,转载请注明出处。)