The 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;

You get an array with the desired length and if you ask for the value of each of the array elements, you get undefined.

> 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;
> '0' in un;

This difference in the Array() constructor's behavior when you specify one versus more parameters can lead to unexpected behavior. For example, the following ...

Get Object-Oriented JavaScript - Second Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.