Javascript array best practice to use [] instead of new array?

I read at many tutorials that the current best practices to create a new javascript array is to use

var arr = [] 

instead of

var arr = new Array()

What's the reasoning behind that?

Answers:

Answer

It might be because the Array object can be overwritten in JavaScript but the array literal notation cannot. See this answer for an example

Answer

Also note that doing:

var x = [5];

Is different than doing:

var x = new Array(5);

The former creates an initializes an array with one element with value of 5. The later creates an initializes an array with 5 undefined elements.

Answer

It's less typing, which in my book always wins :-)

Once I fixed a weird bug on one of our pages. The page wanted to create a list of numeric database keys as a Javascript array. The keys were always large integers (a high bit was always set as an indicator). The original code looked like:

 var ids = new Array(${the.list});

Well, guess what happened when the list had only one value in it?

 var ids = new Array(200010123);

which means, "create an array and initialize it so that there are 200 million empty entries".

Answer

Usually an array literal(var a=[1,2,3] or a=[]) is the way to go.

But once in a while you need an array where the length itself is the defining feature of the array.

var A=Array(n) would (using a literal) need two expressions-

var A=[]; A.length=n;

In any event, you do not need the 'new' operator with the Array constructor, not in the way that you DO need 'new' with a new Date object, say.

Answer

To create Array without Length

var arr = [];

To create Array with Length more dynamically

var arr;
( arr = [] ).length = 10;  // 10 is array length

To create Array with Length less dynamically

var arr = [];
arr.length = 10;

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.