gostaria de saber qual a diferença da lista utilizada na aula com esse outra lista:
`let listaDeDestinos = ["São Paulo", "Salvador", "Rio De Janeiro"];`
gostaria de saber qual a diferença da lista utilizada na aula com esse outra lista:
`let listaDeDestinos = ["São Paulo", "Salvador", "Rio De Janeiro"];`
A diferença entre criar um array com o array implícito e o construtor do array é sutil, mas importante.
Quando você cria um array usando
var a = [];
Você está dizendo ao interpretador para criar uma nova matriz de tempo de execução. Nenhum processamento extra é necessário. Feito.
Se você usar:
var a = new Array();
Você está dizendo ao interpretador, eu quero chamar o construtor " Array" e gerar um objeto. Em seguida, ele procura por seu contexto de execução para encontrar o construtor a ser chamado e o chama, criando sua matriz.
Por exemplo:
function Array() {
this.is = 'SPARTA';
}
var a = new Array();
var b = [];
alert(a.is); // => 'SPARTA'
alert(b.is); // => undefined
a.push('Woa'); // => TypeError: a.push is not a function
b.push('Woa'); // => 1 (OK)
No exemplo acima, o primeiro alert exibirá 'SPARTA' como seria de esperar. A segunda não. Você vai acabar vendo undefined. Você também notará que b contém todas as funções nativas do objeto Array, como push, onde o outro não contém.
Embora você possa esperar que isso aconteça, isso apenas ilustra o fato de que [] não é o mesmo que new Array().
Provavelmente é melhor usar apenas [] se você quiser apenas uma matriz.