Sí, estás equivocado en alguna parte. var a = new Array(3,3);
significa lo mismo que var a = [3,3];
. Crea una matriz con dos miembros: el número 3
y el número 3
nuevamente.
El constructor de matriz es una de las peores partes del diseño del lenguaje JavaScript. Dado un valor único, determina la longitud de la matriz. Dado valores múltiples, los usa para inicializar la matriz.
Utilice siempre la sintaxis var a = [];
. Es consistente (además de ser más corto y más fácil de leer).
No hay una sintaxis de atajo para crear una matriz de matrices. Tienes que construir cada uno por separado.
var a = [
[1,2,3],
[4,5,6],
[7,8,9]
];
Esta es una de las razones por las ** ** no usar 'new Array()'. Si pasa solo un argumento, de hecho establece la longitud de la matriz a ese argumento. Pero si pasa más de uno, genera una matriz que contiene esos elementos. No es necesario usar 'Array()', use notación literal en lugar de '[]'. –