по теме кода там мало. много кода из-за того, что там html везде понапихан и циклы для замера времени исполнения
весь вопрос заключается в этом : "почему без
var b = window.b функция работает быстрее?"
по идее должна медленнее
els = window.document.body.children;
b = els.length;
function ge(tagname){
tagname = tagname.toUpperCase();
var i = 0, el, *!* b = window.b */!*
while(i++ < b){
if( (el = els[i]).tagName === tagname )
break;
}
return el;
}
и еще один парадокс
затестил сейчас же
while(i < b){
if( (el = els[i++]).tagName === tagname ) break;
if( (el = els[i++]).tagName === tagname ) break;
}
если цикл такой (сверху), время исполнения в FF 460, Chrome - 150.
итераций в 2 раза больше!
если добавить еще
if( foo ) break;, скорость исполнения уменьшается на ~5-7 ms
.. а если такой
while(i++ < b){
if( (el = els[i]).tagName === tagname )
break;
}
если цикл такой (сверху), время исполнения в FF 390, Chrome - 120. ведь итераций больше?
??????