Answer

Answer

JavaScript test

В консоли выведется:

0 
1 
2 
each 

Объяснение:

For..in итерируется по всем полям объекта [b]и его прототипов[/b] (т.е. проходит по всей цепочке прототипов).

В приведённом в вопросе коде проблем как таковых нет, но они могут появиться при использовании библиотек/полифиллов, которые переопределяют или создают новые свойства для прототипов стандартных конструкторов (таких как Array или Object).

Код для проверки:

var arr = [3, 4, 5]; 
Array.prototype.each = function() {/*some fancy polyfill*/}; 
  
for (var i in arr) { 
    console.log(i); 
} 

Report Page