Ключевое слово javascript for
будет перебирать все свойства объекта. Что произойдет, если объект будет изменен в теле цикла?
Например, в порядке ли следующий код?
for(var key in obj)
if (whatever(obj[key]))
delete obj[key];
В порядке, если этот код работает детерминированно и желательно, чтобы все ключи в obj
проверялись ровно один раз. Напротив, в .NET или Java подобные конструкции обычно вызывают исключение.