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 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 - Third Edition now with O’Reilly online learning.

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