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();
?
ベストアンサー1
Mostly, people use var a = []
because Douglas Crockford says so.
His reasons include the non-intuitive and inconsistent behaviour of new Array()
:
var a = new Array(5); // an array pre-sized to 5 elements long
var b = new Array(5, 10); // an array with two elements in it
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 the Array
constructor 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 of new Object()
.