blog
Back to top
22
Sep
2017

Weird behaviour of “new Array()” in Javascript?

Arrays, JavaScript 0 Comments

When I’m playing around with Javascript arrays, I have noticed some weird behaviour of an array constructor. Let’s look into it deeply..
How to create a JavaScript Array?
In Javascript, we can create an array using either

  • Array literals or
  • Array Constructor

Let’s start with the best way: Array Literals
I as a developer, regularly use this way:


var arr = [1,2,3]; // an array with three elements

var arr = [1]; // an array with one element

Well, this is pretty much easy and we don’t have any problem with this way.

Now, let’s look into another way: Array constructor


var arr = new Array(1,2,3); // an array with three elements

var arr = new Array(3); // an empty array with length three

Did you find anything awkward? YES.

Here var arr = new Array(3);  gives an empty array with length 3, instead of an array with a single element..

To get over this problem, ES6 Introduced a new method Array.of()

The Array.of() method creates a new Array instance with specified number of arguments, regardless of number or type of the arguments.
The difference between Array.of() and the Array constructor is in the handling of integer arguments:

  • Array.of(7) creates an array with a single element, 7, whereas
  • Array(7) creates an empty array with a length property of 7

(Note: This implies an array of 7 empty slots, not slots with actual undefined values).


Array.of(7); // an array with one element i.e. [7]

Array.of(1, 2, 3); // an array with three elements i.e. [1, 2, 3]

Happy Coding 🙂

Leave a Comment

Your email address will not be published.

Please Enter Message

Please Enter Name

Please Enter Valid Email

%d bloggers like this: