I'm a big fan of using the forEach method on nodeLists like this:
开发者_Go百科var nodes = document.querySelectorAll(".foo");
[].forEach.call(nodes, function (item) {
//do stuff with item
});
I was wondering though, does doing it that way take longer than the regular way? e.g.
for(var i=0;i<nodes.length;i++){
//do stuff with nodes[i];
}
Here's a nice performance comparison. According to it Array.forEach
is slower than a native for
loop.
I know it's an old post but using the forEach method can be done by stealing the Array prototype as well.
NodeList.prototype.forEach = Array.prototype.forEach;
It depends on the browser. And don't forget about while() which is the fastest on Firefox 4. Here's a comparison.
Also keep in mind that if you're supporting older browsers that don't support forEach, you need to add in the time it takes to implement a polyfill.
精彩评论