отвечу сам себе, почему этот цикл (снизу) быстрее .. ( время 400 )
*!*while(i++ < b){*/!*
if( (el = els[i]).tagName === tagname )
break;
*!*}*/!*
.. быстрее этого ??
*!*do{*/!*
if( (el = els[i]).tagName === tagname )
break;
*!*} while(i++ < b)*/!*
среднее время второго 481 ms. на 17% медленней.
потому что
do{statements}while(bool) сначала делает
statements, а потом "думает" в
bool, исполнять ли ему цикл еще раз...
а вот
while(bool){statements} сначала решает в
bool, исполнять ли ему
statements,или нет.
таким образом,
while(bool){statements} не делает лишнюю работу, которую делает
do{statements}while(bool)
я это так понял
)
сори за кросспост. надо было апнуть тему.