$ .each () против цикла for () - и производительность

В основном это просто некоторые вещи, которые мне интересны, может быть, кто-то может дать мне немного больше понимания о них, я поделюсь тем, что я заметил до сих пор!

Первое, что мне было интересно ... есть ли какая-либо разница или причина для использования:

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

-- против --

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

Глядя на документы jQuery, я не вижу никакой рифмы или причины того или другого (может быть, вы знаете экземпляр или дополнительные действия, которые можно сделать над другим).

But more importantly I'm concerned with speed here

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

Если вы проверите этоJSFiddle ДЕМО здесьвы увидите, что разница в скорости в основном эквивалентна любому из них, но что более важно, я чувствую, что долженalways использоватьfor() петли ...

Я просто занимался модульным тестированием (циклически просматривая каждую из 5 различных функций сценария, 50000 раз), просто циклически просматривая группу элементов списка и устанавливаяdata-newAttr, ничего особенного.

QUESTION :: I guess my biggest question is, why not always use for loops while iterating through an object?? Is there even a point to using $.each()? Do you always use for() loops even when going through jQuery objects?

JSFiddle ДЕМО здесь

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

Просто мои 2цента. :)

Ответы на вопрос(6)

Ваш ответ на вопрос