propiedades objetos literales diccionario array agregar javascript arrays jslint literals

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?