¿Cuál es la diferencia entre Array () y [] en Javascript y por qué debería utilizar uno sobre el otro? [duplicar]
-
18-09-2019 - |
Pregunta
Duplicar posible:
¿Cuál es la diferencia entre “Array ()” y “[]”, mientras que se declara una matriz de JavaScript?
En JavaScript se puede crear una nueva matriz como:
var arr = new Array();
o igual que:
var arr2 = [];
¿Cuál es la diferencia y ¿por qué haces una sobre la otra?
Solución
new Array(2)
proudces una matriz de tamaño 2 , que contiene dos undefined
s. [2]
produce una matriz de tamaño 1 , que contiene el número 2 . new Array
OMI no encaja con el espíritu de JavaScript, a pesar de que esto puede hacer que la construcción gama mucho más fáciles de encontrar. Eso puede o no ser de alguna importancia (utilizo literales casi exclusivamente en JavaScript para todos los tipos aplicables, y he sido autor / mantenido grandes piezas de JavaScript [30-50 KLOC] con éxito).
editar supongo que las razones avezados programadores de JavaScript evitar la sintaxis new Array
son:
- no se comporta de manera uniforme en los números de argumentos y tipos (
(new Array(X)).length == 1
para cualquierX
, siempre y cuandotypeof(X) != "number"
- que es más detallado y lo único que se obtiene es la irregularidad
Otros consejos
Otra razón (menor) a utilizar con preferencia a []
new Array()
es que Array
potencialmente podría ser anulado (aunque nunca he visto suceder) y []
se garantiza que funcione.
Array = "something";
var a = new Array(); // Fails
var b = []; // Works
creo que son idénticos. Nunca uso new Array ();