Array constructor creates array objects:
> var a = new Array(1, 2, 3);
This is the same as the array literal:
> var a = [1, 2, 3]; //recommended
When you pass only one numeric value to the
Array constructor, it's assumed to be the array length.
> var un = new Array(3); > un.length; 3
You get an array with the desired length and if you ask for the value of each of the array elements, you get
> un; [undefined, undefined, undefined]
There is a subtle difference between an array full of elements and an array with no elements, but just length:
> '0' in a; true > '0' in un; false
This difference in the
Array() constructor's behavior when you specify one versus more parameters can lead to unexpected behavior. For example, the following ...