В моём случае я заменил простой if конструкцией try/catch замедлит ли она выполнение скрипта или наоборот этот способ более предпочтительнее так как ошибочные значения редко появляются.
Вариант 1.
listBody.getItem = function(ind){
if(ind<0||ind>=this.childNodes.length)
return false;
return this.childNodes[ind].lastChild;
}
Вариант 2.
listBody.getItem = function(ind){
try{
return this.childNodes[ind].lastChild;
}
catch(e){
return false;
}
}
Хотя в обоих случаях можно обойтись и без проверки, но всё таки интересный вопрос.