Minha Conta
Recuperar Senha

Digite seu endereço de e-mail que foi cadastrado e enviaremos seus dados de acesso.

Minha Conta

A senha deve conter no mínimo 6 caracteres.

Ao se cadastrar, você concorda com a Política de Privacidade e Segurança

Mudar Data: Photoshop CS6 Módulo I
Preço
15/09 a 26/09 Manhã 4000,00
15/09 a 26/09 Manhã 4000,00
15/09 a 26/09 Manhã 4000,00
15/09 a 26/09 Manhã 4000,00
  Itens Preço
Carrinho de Compras
O carrinho está vazio.
INVESTIMENTO TOTAL:0,00

Esqueci minha senha

Foi enviado um e-mail para com os dados de acesso.

Saiba a diferença entre declarar uma matriz com “array()” e “[]” em JavaScript

Na prática, uma tem cinco toques a mais do que a outra. Agora, falando sério, o JavaScript nos permite a sintaxe direta "var x = [];" e presto!, temos uma variável que pode conter mais de um valor. Sempre que uma linguagem oferecer uma sintaxe direta, use-a.

Entretanto, há duas outras opções definidas na referência da documentação:

[element0, element1, ..., elementN]  // a sintaxe direta que vimos no início

new Array(element0, element1[, ...[, elementN]]) // usando o construtor Array(),

                                                // passando os elementos como argumento

new Array(arrayLength)  // usando o construtor Array(),

                       // passando o comprimento (lenght) como argumento

Alguns exemplos de declaração

- Criando um array vazio:

var meuArray = new Array();

var meuArray = [];

são construções com resultado idêntico.

- Criando arrays com elementos predefinidos:

var meusCarros = new Array("Gol", "Uno", "Celta");

var meusCarros = ["Gol", "Uno", "Celta"];

também são construções com resultado idêntico.

Evitando confusão

var arrConstrutor = new Array(8);

var arrDireto = [8];

As declarações acima NÃO SÃO construções com resultado idêntico. Lembra-se da última opção na sintaxe do construtor "new Array(n)"? Esta opção cria um array com "n" elementos 'undefined'; o argumento tem que ser um integer, qualquer outro número vai retornar erro. No caso citado agora, "arrConstrutor" tem um comprimento igual a 8, e todos os elementos 'undefined'. A variável "arrDireto" têm um comprimento igual a 1, e contém o literal "8" na sua primeira posição. Resumindo:

  • x = arrConstrutor.length; // x será igual a 8
  • z = arrDireto.length; // z será igual a 1
  • y = arrConstrutor[0]; // y será igual a 'undefined'
  • w = arrDireto[0]; // w será igual a '8'

Para clarear mais ainda, vamos criar dois arrays diferentes usando o construtor:

  • var a = new Array(8);
  • var b = new Array(8, 9);

Agora, "a" têm um comprimento igual a 8, e todos os elementos 'undefined'. A variável "b" tem um comprimento igual a 2, e contém os literais "8" e "9" na sua primeira e segunda posições, respectivamente. Então:

  • x = a.length; // x será igual a 8
  • z = b.length; // z será igual a 2
  • y = a[0]; // y será igual a 'undefined'
  • w = b[0]; // w será igual a '8'
  • t = b[1]; // t será igual a '9'

Quando devo usar um ou outro?

Já que o Array no JavaScript não requer uma alocação de memória prévia, e eles podem ser estendidos a qualquer momento, economize tempo usando sempre a sintaxe direta "var a = [];". Alguns desenvolvedores afirmam que o webkit e outros engines possuem uma otimização quando o comprimento do Array é predefinido, mas não encontramos nenhuma evidência nas specs que suportem tais afirmações.

Resta uma pequena exceção que pede o uso do construtor; quando for construir algo como:

var arrayVazio = new Array(100);

Como foi exemplificado, isto cria um array vazio de 100 posições, todas elas contendo 'undefined' — que pode ser útil onde se aplicarem arrays predefinidos com ciclo de vida curto (ao preparar um formulário web para serialização, transformando os dados antes de enviar) ou situações como "(new Array(9)).join('Na-Na ') + 'Batman!';".

Quer ser um Desenvolvedor na linguagem JavaScript?

Para encerrar, vamos fazer a seguinte sugestão: evite o construtor "new Array()", você não precisa usá-lo; use "[]". O uso do construtor complica seu código e pode produzir efeitos colaterais indesejados.

Ainda tem dúvidas? Deixe um comentário!

[fbcomments url="" width="100%" count="off" num="3" countmsg="wonderful comments!"]

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Artigos Relacionados