$ .each () vs for () loop - e desempenho

Estas são principalmente apenas algumas coisas que eu tenho pensado, talvez alguém possa me dar um pouco mais de visão sobre elas, eu vou compartilhar o que eu notei até agora também!

Primeira coisa que eu tenho pensado ... existe alguma diferença ou razão para usar:

$('element').each(function (i, el) { });

-- versus --

$.each($('element'), function (i, el) { });

Olhando para os documentos do jQuery eu não consigo ver nenhuma rima ou razão para um ou outro (talvez você conheça uma instância ou coisas adicionais que uma pessoa pode fazer sobre a outra.

Mas mais importante eu estou preocupado comRapidez Aqui

// As opposed to $.each() looping through a jQuery object
// -- 8x faster 
for (var i = 0, $('.whatever').length; i < len; i++) {
    $('.whatever')[i] // do stuff
}

Se você verificar issojsFiddle DEMO aqui, você verá que a diferença de velocidade é basicamente equivalente a qualquer um deles, mas o mais importante é que eu sinto que deveriasempre estar usandofor() rotações...

Eu estava apenas testando a unidade (passando por cada uma das 5 diferentes funções do cenário, 50.000 vezes), simplesmente passando por um monte de itens de lista, e definindo umdata-newAttr, nada especial.

PERGUNTA :: Eu acho que a minha maior pergunta é: por que nãosempre usar loops enquanto percorre um objeto ?? Existe até um ponto para usar $ .each ()? Você sempre usa for () loops mesmo ao passar por objetos jQuery?

jsFiddle DEMO aqui

Function type:                  Execution Time:
_testArea.each() + $(this)               1947   <-- using $(this) slows it down tremendously
$.each()         + $(this)               1940
_testArea.each() + el(plain JS)           458   <-- using the Element speeds things up
$.each()         + el(plain JS)           452
for() loop       + plainJS[0] iteration   236   <-- over 8x faster

Apenas meus 2 centavos. :)

questionAnswers(6)

yourAnswerToTheQuestion