Thread:Manual talk:Coding conventions/JavaScript/For loop style?/reply

has to be armored with checks for arr.hasOwnProperty(i) to protect against brokenness if frameworks are present that modify the Array prototype. Bleh!

Personally I prefer to use $.each most of the time:
 * functional style / iterator feels nicer than counting manually
 * you get a real function scope -- for instance you can safely use  in a lambda function inside your loop, which you can't with the first two forms

However it is a little more expensive, so performance-critical paths may prefer the traditional for loop with iterator variable and comparison to length.