One of the most common methods is to use Object.keys()
judgment in modern browsers.
const empty = {};
Object.keys(empty).length === 0 && empty.constructor === Object;
You may be wondering why a constructor test was added?
We all know that there are nine built-in constructors in JS
new Object();
new String();
new Number();
new Boolean();
new Array();
new RegExp();
new Function();
new Date();
So we can create an object with new Object()
function.
const obj = new Object();
Object.keys(obj).length === 0; // true
But,when we use other constructor to new an object, the result is also true. For example:
const obj = new String();
Object.keys(obj).length === 0; // true
To be more rigorous, if we want to check whether an object is empty, we can write it like this
function objectEmpty(value) {
value && Object.keys(value).length === 0 && value.constructor === Object;
}
We aslo can use Lodash 🤭
_.isEmpty({}); // true
That'all, thanks for reading!