6

私は、次のように nodeLists で forEach メソッドを使用することの大ファンです。

var nodes = document.querySelectorAll(".foo");

[].forEach.call(nodes, function (item) {
    //do stuff with item
});

私は疑問に思っていましたが、そのようにすると、通常の方法よりも時間がかかりますか? 例えば

for(var i=0;i<nodes.length;i++){
    //do stuff with nodes[i];
}
4

3 に答える 3

7

これは素晴らしいパフォーマンス比較です。それによると、ネイティブループArray.forEachよりも遅いです。for

于 2010-02-23T10:49:28.600 に答える
4

古い投稿であることは知っていますが、forEach メソッドを使用すると、Array プロトタイプを盗むこともできます。

NodeList.prototype.forEach = Array.prototype.forEach;
于 2012-12-13T13:02:00.653 に答える
1

ブラウザによって異なります。また、Firefox 4 で最速の while() を忘れないでください。比較は次のとおりです。

また、 forEach をサポートしていない古いブラウザーをサポートしている場合は、 polyfill の実装にかかる時間を追加する必要があることに注意してください。

于 2011-04-13T13:27:18.217 に答える