Есть два объекта:
let obj1 = {a:1}; let obj2 = {};
Мы хотим проверить эти объекты на пустоту. Как это сделать?

Как проверить, что объект пустой и у него нет свойств?
Под словом «пустой» мы подразумеваем такой объект, в котором нет ключей и значений — то есть нет свойств.
Сделать такую проверку можно через метод конструктора класса Object, который называется getOwnPropertyNames(). Этот метод всегда принимает только один параметр — какой-то объект. Возвращает массив из названий ключей, которые принадлежат только этому объекту. Метод не ныряет в наследственные свойства своих прототипов, а ограничивается только собственным уровнем.
Стало быть, если мы получим массив длиной ноль, то это значит, что у нашего объекта нет никаких ключей и такой объект можно назвать пустым.
Object.getOwnPropertyNames(obj1) ['a'] Object.getOwnPropertyNames(obj2) []
Данные выражения возвращают массивы.

Теперь можно получить длины массивов и понять пустой объект перед нами или нет.
Object.getOwnPropertyNames(obj1).length 1 Object.getOwnPropertyNames(obj2).length 0
В случае с первым объектом получаем массив длиной 1. А в случае со вторым объектом получаем массив длиной 0.

Функция проверки объекта на пустоту
Значения длин можно сразу вносить в оператор ветвления — IF. Для этого нужно создать функцию.
function isEmptyObj(obj){ if(Object.getOwnPropertyNames(obj).length){return false} else{return true} };
Пример работы функции:

Вызов нашей функции isEmptyObj() для первого объекта вернёт логический тип со значением false. Для второго объекта — true.
Информационные ссылки
Стандарт ECMAScript — https://tc39.es/ecma262/multipage/ — https://tc39.es/ecma262/
Раздел «Object.getOwnPropertyNames( O )» — https://tc39.es/ecma262/#sec-object.getownpropertynames