PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Как посмотреть весь список свойств?

Продвинутые темы

Полный список свойств объекта смотрят через: `Object.keys` (собственные перечисляемые), `Object.getOwnPropertyNames` (все собственные, включая неперечисляемые), `for...in` (+ унаследованные), `Reflect.ownKeys` (включая символы).

Способы получить свойства

Object.keys — собственные перечисляемые

Object.keys(obj); // ['name', 'age'] — только свои enumerable

Object.getOwnPropertyNames — все собственные

Включая неперечисляемые (но не символы):

Object.getOwnPropertyNames(obj); // все собственные строковые ключи

for...in — собственные + унаследованные

for (const key in obj) {
  // включает свойства из прототипа!
}

Object.getOwnPropertySymbols — символьные ключи

Object.getOwnPropertySymbols(obj); // [Symbol(...)]

Reflect.ownKeys — всё собственное (строки + символы)

Reflect.ownKeys(obj); // все собственные ключи, включая символы и неперечисляемые

Со значениями/дескрипторами

Object.entries(obj);                    // [[key, value], ...]
Object.getOwnPropertyDescriptors(obj);  // с флагами (writable, enumerable...)

В консоли

console.dir(obj);   // интерактивный просмотр всех свойств
console.log(obj);   // раскрыть в DevTools — видны все свойства и прототип

Сравнение охвата

  • Object.keys — Собственные: ✓; Унаследованные: ✗; Неперечисляемые: ✗; Символы: ✗
  • getOwnPropertyNames — Собственные: ✓; Унаследованные: ✗; Неперечисляемые: ✓; Символы: ✗
  • for...in — Собственные: ✓; Унаследованные: ✓; Неперечисляемые: ✗; Символы: ✗
  • Reflect.ownKeys — Собственные: ✓; Унаследованные: ✗; Неперечисляемые: ✓; Символы: ✓

Коротко для собеседования

Список свойств: Object.keys (собственные перечисляемые), Object.getOwnPropertyNames (все собственные строковые, включая неперечисляемые), for...in (+ унаследованные из прототипа), Object.getOwnPropertySymbols (символы), Reflect.ownKeys (всё собственное — строки и символы). В консоли — console.dir(obj). Со значениями — Object.entries.

Другие вопросы раздела