これらは主に私が疑問に思っていることのほんの一部です。誰かがそれらについてもう少し洞察を与えることができるかもしれません。私がこれまでに気づいたことも共有します!
私が最初に疑問に思っていたのは...違いはありますか、それとも使用する理由はありますか:
$('element').each(function (i, el) { });
- 対 -
$.each($('element'), function (i, el) { });
jQueryのドキュメントを見ると、どちらか一方の韻や理由がわかりません(インスタンスや、一方が他方よりもできる追加のことを知っているかもしれません.
しかし、もっと重要なことに、私はここで速度に関心があります
// 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 DEMO hereをチェックすると、速度の違いは基本的にどちらでも同等であることがわかりますが、さらに重要なことに、常にfor()
ループを使用する必要があると感じています...
私は単なる単体テスト (5 つの異なるシナリオ関数のそれぞれを 50,000 回ループ) で、一連のリスト アイテムを単純にループし、data-newAttr
特別なことは何も設定しませんでした。
質問 :: 私の最大の質問は、オブジェクトを反復処理するときに常にfor ループを使用しないのはなぜですか?? $.each() を使用する意味さえありますか? jQuery オブジェクトを通過するときでも、常に for() ループを使用しますか?
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セント。:)