Почему каждый объект JS имеет одно неопределенное свойство [duplicate]

На этот вопрос уже есть ответ здесь:

Chrome / Firefox console.log всегда добавляет строку с надписью undefined 6 ответов
let obj = {a:'a',b:'b'};
for (let p in obj){
   console.log(p);
}

Выход:

a 
b
undefined

Что случилось с неопределенным свойством?

Ответы на вопрос(1)

Ваш ответ на вопрос