Sanda,
Далее копипаста из исходников.
Расшифровка:
"
Работает как положено" - цикл выполняется столько раз, сколько задано условием, т.о. до отлова исключения дело не доходит.
"
Out of range" - цикл идет на итерацию с нарушением условия.
Пишу:
var _Items = [ 1, 2, 3 ];
var _ic = _Items.length;
for( var cnt = 0; cnt < _ic; cnt++ ) {
console.log( cnt );
console.log( _ic );
console.log( cnt < _ic);
console.log( cnt - _ic);
try{console.log(_Items[cnt])}catch(e){console.log(e)}
}
Работает как положено.
Пишу:
var _Items = [ 1, 2, 3 ];
var _ic = 1;
for( var cnt = 0; cnt < _ic; cnt++ ) {
console.log( cnt );
console.log( _ic );
console.log( cnt < _ic);
console.log( cnt - _ic);
try{console.log(_Items[cnt])}catch(e){console.log(e)}
}
Работает как положено.
Пишу:
var _ic = _Items.length;
for( var cnt = 0; cnt < _ic; cnt++ ) {
$('#tw2logn').append( _Items[ cnt ].ID + ', ' );
}
Out of range.
Пишу:
var _ic = 1;
for( var cnt = 0; cnt < _ic; cnt++ ) {
$('#tw2logn').append( _Items[ cnt ].ID + ', ' );
}
Out of range.
Начинаю грешить на jQuery.
Пишу:
var _ic = _Items.length;
for( var cnt = 0; cnt < _ic; cnt++ ) {
try{console.log(_Items[cnt].ID)}catch(e){console.log(e)}
}
Out of range. В консоли только ID из массива.
Пишу:
var _ic = 1;
for( var cnt = 0; cnt < _ic; cnt++ ) {
try{console.log(_Items[cnt].ID)}catch(e){console.log(e)}
}
Out of range. В консоли только ID из массива.
P.S. не знаю насколько это важно, но в любой ситуации при out of range мой statement не просто крэшится, а передает следующий шаг по отладке в jQuery, а оттуда уже эвакуация из statement'а.