A maioria dos tutoriais que li sobre matrizes em JavaScript (incluindo w3schools e devguru ) sugerem que você pode inicializar uma matriz com um certo comprimento passando um número inteiro ao construtor Array usando a var test = new Array(4);
sintaxe.
Depois de usar essa sintaxe liberalmente nos meus arquivos js, executei um dos arquivos através do jsLint , e ele se assustou:
Erro: Problema no caractere da linha 1 22: Esperado ')' e viu '4'.
teste var = nova matriz (4);
Problema na linha 1, caractere 23: Esperado ';' e viu ')'.
teste var = nova matriz (4);
Problema no caractere 23 da linha 1: esperava um identificador e viu ')'.
Após ler a explicação do comportamento de jsLint, parece que o jsLint não gosta muito da new Array()
sintaxe e prefere []
ao declarar matrizes.
Então, eu tenho algumas perguntas:
Primeiro porque? Estou correndo algum risco usando a new Array()
sintaxe? Existem incompatibilidades de navegador que eu devo estar ciente?
E segundo, se eu alternar para a sintaxe entre colchetes, existe alguma maneira de declarar uma matriz e definir seu comprimento em uma linha ou preciso fazer algo assim:
var test = [];
test.length = 4;
new Array()
em geral, mas está tudo bem com a especificação de tamanho. Eu acho que tudo se resume à consistência do código em todo o contexto.