Possible Duplicate:
What's the difference between Array(1) and new Array(1) in JavaScript?
In javascript, how are these two different?
var arr = Array(); var arr2 = new Array();
If they are the same according to JS standards, are there any browsers that treat both ways differently?
Even if you do not initialize the array, the Java compiler will not give any error. Normally, when the array is not initialized, the compiler assigns default values to each element of the array according to the data type of the element.
An array in JavaScript is also an object and variables only hold a reference to an object, not the object itself. Thus both variables have a reference to the same object.
According to ECMA-262 edition 5.1:
15.4.1 The Array Constructor Called as a Function
When
Array
is called as a function rather than as a constructor, it creates and initialises a new Array object. Thus the function callArray(...)
is equivalent to the object creation expressionnew Array(...)
with the same arguments.
The section 11.1.4 (it is quite long, so I won't quote it) also states that array literal directly corresponds to the new Array(...)
constructor call.
I believe the 2nd is simply proper coding convention, but however Jared has a good point that most people just use var arr = [];
Here's a benchmark for your question: http://jsperf.com/array-vs-new-array
After 10 runs, they're neck and neck averaging 65-80 millions ops per second. I see no performance difference whatsoever between the two.
That being said, I added var arr = [];
to the benchmark, and it is consistently 20-30% faster than the other two, clocking in at well over 120 million ops per second.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With