objetos - ¿Qué es la notación literal de matriz en JavaScript y cuándo debería usarla?
objetos literales javascript (4)
Aparte del argumento de Crockford, jsPerf dice que es más rápido. http://jsperf.com/new-vs-literal-array-declaration
JSLint me está dando este error:
Problema en la línea 11, carácter 33: utilice la notación literal de la matriz [].
var myArray = new Array();
¿Qué es la notación literal de matriz y por qué quiere que la use en su lugar?
Muestra aquí la new Array();
debería funcionar bien ... ¿hay algo que me falta?
Después de mirar @ecMode jsperf, hice algunas pruebas adicionales.
Al usar push para agregar a la matriz, Array () es considerablemente más rápido en Chrome:
http://jsperf.com/new-vs-literal-array-declaration/2
Usar el índice para agregar es ligeramente más rápido para [].
Ver también: ¿Qué pasa con var x = new Array ();
Aparte del argumento de Crockford, creo que también se debe al hecho de que otros lenguajes tienen estructuras de datos similares que usan la misma sintaxis; por ejemplo, Python tiene listas y diccionarios ; vea los siguientes ejemplos:
// this is a Python list
a = [66.25, 333, 333, 1, 1234.5]
// this is a Python dictionary
tel = {''jack'': 4098, ''sape'': 4139}
¿No está claro cómo Python también es Javascript gramaticalmente correcto? (Sí, faltan los puntos y comas, pero tampoco son necesarios para Javascript)
Por lo tanto, al reutilizar los paradigmas comunes en la programación, salvamos a todos de tener que volver a aprender algo que no debería ser necesario.
la notación literal de matriz es donde define una nueva matriz usando solo corchetes vacíos. En tu ejemplo:
var myArray = [];
Es la "nueva" forma de definir arreglos, y supongo que es más corto / más limpio.
Los ejemplos a continuación explican la diferencia entre ellos:
var a = [], // these are the same
b = new Array(), // a and b are arrays with length 0
c = [''foo'', ''bar''], // these are the same
d = new Array(''foo'', ''bar''), // c and d are arrays with 2 strings
// these are different:
e = [3], // e.length == 1, e[0] == 3
f = new Array(3); // f.length == 3, f[0] == undefined
Referencia : ¿Cuál es la diferencia entre "Array ()" y "[]" al declarar una matriz de JavaScript?