Показать сообщение отдельно
  #8 (permalink)  
Старый 18.12.2012, 17:39
Аватар для cib
cib cib вне форума
Интересующийся
Отправить личное сообщение для cib Посмотреть профиль Найти все сообщения от cib
 
Регистрация: 11.12.2012
Сообщений: 16

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'а.
Ответить с цитированием