In JavaScript I can have an array with holes:
a = [];
a[0] = 100;
a[5] = 200;
a[3] = 300;
a.forEach(function(x) {alert(x);});
I could not find information about whether elements would be processed in ascending order or this is not reliable fact.
I checked that "for .. in" loop traverses array indices in ascending order, while property names of an object are traversed in the same order they were added to object (at least it looks so).
(I.e. it looks like arrays are internally trees of some kind and objects are hashtables.)
I just found that Rhino JavaScript traverses non-existent elements also: http://ideone.com/7Z3AFh (unlike for..in).