multidimensional - new array javascript
Lo que está mal con var x=new Array(); (5)
En JSLint, advierte que
var x = new Array();
(Ese no es un nombre de variable real) debe ser
var result = [];
¿Qué pasa con la primera sintaxis? ¿Cuál es el razonamiento detrás de la sugerencia?
Es más seguro usar []
de lo que es usar una new Array()
, porque puedes anular el valor de la Array
en JavaScript:
Array = function() { };
var x = new Array();
// x is now an Object instead of an Array.
En otras palabras, []
no es ambiguo.
No hay nada de malo en ninguna de las formas, pero normalmente se ven literales siempre que sea posible-
var s = '''' no es más correcto que var s = new String () ....
No hay nada malo con la primera sintaxis per se. De hecho, en w3schools , enumera una new Array()
como la forma de crear una matriz. El problema es que esta es la "vieja manera". La "nueva forma", []
es más corta y le permite inicializar valores en la matriz, como en ["foo", "bar"]
. La mayoría de los desarrolladores prefieren []
a la new Array()
en términos de buen estilo.
Parece que puede obtener un rendimiento diferente en función del uso y para qué fines, según el navegador o el entorno:
http://jsperf.com/new-array-vs-literal/11 ([1, .2] vs new Array (1, .2)) el literal es mucho más rápido en esta circunstancia.
http://jsperf.com/new-array-vs-literal/7 (nuevo Array (500000) vs [] .length (500000)) nuevo Array es más rápido en chrome v21, parece para este test en aproximadamente 7% o 30 %) dependiendo de lo que hagas.
A Crockford no le gusta lo new
. Por lo tanto, JSLint espera que lo evites cuando sea posible. Y la creación de un nuevo objeto de matriz es posible sin usar new
....