Как посмотреть весь список свойств?
Продвинутые темы
Полный список свойств объекта смотрят через: `Object.keys` (собственные перечисляемые), `Object.getOwnPropertyNames` (все собственные, включая неперечисляемые), `for...in` (+ унаследованные), `Reflect.ownKeys` (включая символы).
Способы получить свойства
Object.keys — собственные перечисляемые
Object.keys(obj); // ['name', 'age'] — только свои enumerableObject.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.