Встречается на собеседованиях • сегодня

В чем разница между for...in и Object.keys

for...in перебирает все перечисляемые свойства объекта, включая унаследованные из цепочки прототипов. Object.keys() возвращает массив только собственных перечисляемых свойств объекта.

javascript
const obj = { a: 1, b: 2 };
Object.defineProperty(obj, 'c', { value: 3, enumerable: false });

// for...in
for (const key in obj) {
console.log(key); // 'a', 'b'
}

// Object.keys
console.log(Object.keys(obj)); // ['a', 'b']

text

Важные отличия:
1. `for...in` может получить унаследованные свойства (если не использовать `hasOwnProperty` проверку)
2. `Object.keys` не включает свойства с флагом `enumerable: false`
3. `Object.keys` возвращает массив, который можно дальше обрабатывать методами массива
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы