son - porque usar javascript
Ventajas de usar[] sobre el nuevo Array() en JavaScript (7)
¿Cuáles son las ventajas de usar
var foo = [];
sobre uso
var bar = new Array();
Me han dicho que use [] sobre la nueva matriz () pero nunca con mucha explicación.
Ambos pueden ser utilizados como buenos. Esta discusión / confusión ha comenzado desde que el gurú de Javascript, Douglas Crockford, dijo que la new
palabra clave se considera dañina . Desde entonces, se consideró "buena práctica / técnica" omitir la new
palabra clave para evitar resultados / comportamientos inesperados. También vea este tema de .
Es lo mismo. La única razón para usar []
sobre la new Array()
es que es más corto.
La razón principal para usar []
en contraposición a la new Array()
son los argumentos que pasa. Cuando usa la new Array(10)
, crea una matriz vacía con 10 elementos, pero cuando usa [10]
, crea una matriz con un elemento cuyo valor es 10
. Debido a que generalmente esta es la información que la mayoría de los programadores desean pasar a una matriz (ya que las matrices son dinámicas en Javascript), generalmente se considera la mejor práctica. También la new Array(10,20)
funciona de manera diferente a la new Array(10)
. En este caso, tiene el mismo efecto que [10,20]
que es crear una matriz con 2 elementos, 10 y 20. Ya que esto es ... extraño en el mejor de los casos ... es fácil crear una matriz vacía al pasar accidentalmente new Array()
solo un valor. []
siempre tiene el mismo efecto, por lo que también recomiendo seguir con él.
Más corto y más limpio. Debería usar {} para crear objetos también.
Te anota menos símbolos en el código golf.
Tres razones (las dos primeras se expandieron en otras respuestas):
- Más corta;
- Permite la creación de arreglos con un elemento, como se detalla en la respuesta de Chibu;
- Funciona incluso en el improbable caso de que el constructor
Array
haya sido sobrescrito.
No razones:
- Evitar al
new
operador. No tengas miedo de lonew
solo porque Douglas Crockford fue una vez mordido por él. Es extremadamente útil.
- más corta
- los argumentos de Array son confusos (por ejemplo, el
new Array(10)
y elnew Array("10")
son bastante diferentes)