Объект считается "пустым", если у него нет собственных перечисляемых свойств.
Способы проверки:
Object.keys(): Возвращает массив строк, представляющих имена перечисляемых свойств объекта. Если массив пуст, объект пустой.
javascript
for...in и hasOwnProperty(): Итерирует по перечисляемым свойствам объекта (включая унаследованные) и проверяет, является ли свойство собственным.
javascript
Object.prototype.hasOwnProperty.call() используется для более безопасной проверки, так как hasOwnProperty мог быть переопределен на объекте.
JSON.stringify(): Преобразует объект в строку JSON. Пустой объект {} преобразуется в строку "{}."
javascript
Этот метод подходит для простых объектов без функций и циклических ссылок.
Object.getOwnPropertyNames(): Возвращает массив всех собственных (не унаследованных) неперечисляемых и перечисляемых свойств (включая символы).
javascript
Object.getOwnPropertySymbols(): Возвращает массив всех собственных символьных свойств объекта. Если объект пустой (и не имеет символьных свойств), этот массив будет пустым.
javascript
Выбор метода зависит от контекста и требований к производительности. Object.keys() и JSON.stringify() обычно самые быстрые и лаконичные для простых случаев. Для учета всех типов свойств и унаследованных свойств могут потребоваться дополнительные проверки.