When I need to declare a new array I use this notation
var arr = new Array();
But when testing online, for example on jsbin, a warning signals me to “Use the array literal notation [].”
I didn’t find a reason to avoid using the constructor. Is in some way less efficient than using []? Or is it bad practice?
Is there a good reason to use var arr = []; instead of var arr = new Array();?
Mostly, people use
var a = []because Douglas Crockford says so.His reasons include the non-intuitive and inconsistent behaviour of
new Array():Note that there’s no way with
new Array()to create an array with just one pre-specified number element in it!Using
[]is actually more efficient, and safer too! It’s possible to overwrite theArrayconstructor and make it do odd things, but you can’t overwrite the behaviour of[].Personally, I always use the
[]syntax, and similarly always use{}syntax in place ofnew Object().