Possible Duplicate:
Create an empty object in JavaScript with {} or new Object()?
When I want 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 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().