ホームページ >ウェブフロントエンド >jsチュートリアル >スピード質問jquery.eact vs. for loop
vanilla javascriptループvs. jquery.eack:パフォーマンス比較
この記事では、Vanilla JavaScriptループの使用とjQueryのfor
メソッドを使用することのパフォーマンスの違いを調査します。 スピードのために、バニラ$.each
ループ、特にさまざまなキャッシュを持つループは、for
> $.each
を大幅に上回ることを実証します。 これにより、jsperfベンチマークに示すように、最大84%の速度改善が発生する可能性があります(リンクは簡潔に省略されていますが、簡単に検索可能です)。
jquery.eachの例:
可変キャッシング(最速)のループの場合<code class="language-javascript">$.each(myArray, function() { let currentElement = this; // ... your code using currentElement ... });</code>
:
可変キャッシングなしのループの場合:<code class="language-javascript">const len = myArray.length; for (let i = 0; i < len; i++) { let currentElement = myArray[i]; // ... your code using currentElement ... }</code>
事前に計算された長さの試行:
<code class="language-javascript">for (let i = 0; i < myArray.length; i++) { let currentElement = myArray[i]; // ... your code using currentElement ... }</code>(キャッシュバージョンと同様のパフォーマンス)
<code class="language-javascript">let len = myArray.length; let i = 0; for (; i < len; i++) { let currentElement = myArray[i]; // ... your code using currentElement ... }</code>
この記事ではパフォーマンスに焦点を当てていますが、とループを選択するための重要な違いと考慮事項の要約を次に示します。
$.each
for
機能:
$.each
for
パフォーマンス:
読みやすさ:for
ループを壊す$.each
for
コールバックから
。を使用します
false
$.each
for
インデックスアクセス:break
どちらも現在のインデックスへのアクセスを提供します(違う)。
nodeList/htmlcollection:ノデリストとhtmlCollectionsで動作しますが、
はjQueryオブジェクトではなく、dom要素を指します。 JQueryメソッドを使用するには、
$.each
ネイティブthis
:$(this)
javascriptのネイティブ
forEach
オブジェクトイテレーション:両方ともオブジェクトを繰り返すことができます。forEach
$.each
スパースアレイで未定義のインデックスをスキップしますが、ループにはそれらが含まれます。
チェーン:$.each
他のjQueryメソッドのようにチェーンをサポートしていません
は、小さなデータセットや読みやすさが最重要である場合に便利です。 JavaScriptのネイティブfor
をjQueryの$.each
。
以上がスピード質問jquery.eact vs. for loopの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。