Функция $.isEmptyObject()

Определение и применение

Функция $.isEmptyObject() проверяет, есть ли у объекта перечисляемые строковые свойства. Её можно встретить при проверке словаря настроек перед объединением или отправкой данных.

Синтаксис

JavaScript
const empty = $.isEmptyObject(object);

Параметры и возвращаемое значение

Аргументом должен быть объект. Результат true означает отсутствие свойств, видимых при таком переборе; false — наличие хотя бы одного. Метод не проверяет значения: поле с undefined тоже считается существующим.

Учитываются собственные и унаследованные перечисляемые строковые свойства. Неперечисляемые поля и ключи Symbol не учитываются. Поэтому «пустой» здесь не означает отсутствие любых внутренних данных объекта.

Особенности и совместимость

Функция доступна с 1.4 и поддерживается в 4.0. Не применяйте её как универсальную проверку пустоты строк, массивов, DOM-элементов или других специальных объектов. Для массива обычно проверяют length.

Object.keys(object).length === 0 проверяет только собственные перечисляемые строковые ключи. Это полезная альтернатива для словарей, но её смысл отличается при наличии унаследованных свойств.

Документация

Пример использования

Собственные и унаследованные поля: попробуйте сами

Пустой объект даёт true. Объект с унаследованным полем — false, хотя Object.keys() возвращает пустой массив. Используется jQuery 4.0.0.

index.html
HTML
<pre id="result"></pre>
main.js
JavaScript
const inherited = Object.create({ enabled: true })
$('#result').text([$.isEmptyObject({}), $.isEmptyObject(inherited), Object.keys(inherited).length].join(' | '))