for
/ in
работает с двумя типами переменных: хеш-таблицы (ассоциативные массивы) и массивы (неассоциативные).
JavaScript автоматически определит способ прохождения элементов. Поэтому, если вы знаете, что ваш массив действительно неассоциативен, вы можете использовать for (var i=0; i<=arrayLen; i++)
и пропустить итерацию автоопределения.
Но, на мой взгляд, лучше использовать for
/ in
, процесс, необходимый для этого автоопределения, очень мал.
Реальный ответ на этот вопрос будет зависеть от того, как браузер анализирует / интерпретирует код JavaScript. Может меняться между браузерами.
Я не могу думать о других целях, чтобы не использовать for
/ in
;
//Non-associative
var arr = ['a', 'b', 'c'];
for (var i in arr)
alert(arr[i]);
//Associative
var arr = {
item1 : 'a',
item2 : 'b',
item3 : 'c'
};
for (var i in arr)
alert(arr[i]);