Истории Javascript | Перечислимый тип

Что такое перечисляемый тип в javascript?

Мы часто слышим о ключевом слове enumerable при чтении документации MDN.

Перечисляемое свойство — это свойство, которое можно включить и посетить во время циклов for..in (или аналогичной итерации свойств, например Object.keys()).

Если свойство не идентифицировано как перечисляемое, цикл проигнорирует, что оно находится внутри объекта. В следующем примере показано, как это работает. Здесь toString() не является перечисляемым свойством obj, поэтому он не будет повторяться при использовании цикла for in.

var obj = { key: 'val' };
console.log('toString' in obj); // true
console.log(typeof obj.toString); // "function"
for (var key in obj)
    console.log(key); // "key"