Вебсправочник
Справочник JavaScript

Object.keys(): собственные перечисляемые ключи

Object.keys возвращает массив собственных перечисляемых строковых ключей объекта.

Назначение

Object.keys возвращает массив собственных перечисляемых строковых ключей объекта.

Как это работает

Унаследованные свойства и символьные ключи не включаются. Метод описывает конкретный набор свойств, поэтому не является полным перечислением всего, что доступно через объект.

Пример

const record=Object.create({inherited:1});
record.title='HTML';
record[Symbol('meta')]=2;
console.assert(JSON.stringify(Object.keys(record))==='["title"]');

Что должно получиться

Массив содержит только title. Пример отделяет собственные строковые перечисляемые свойства от унаследованных и символьных данных.

Граница применения и частая ошибка

Не используйте Object.keys как проверку полномочий или корректности произвольного объекта. Схема данных должна отдельно определять допустимые имена и типы значений.

Самостоятельная проверка

Добавьте унаследованное свойство через прототип и сравните результат с обычным собственным свойством. Затем добавьте Symbol и убедитесь, что он не появился в keys.

JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.