É melhor escreview: vair airr = ; do que vair airr = new Array () ;?

É melhor escreview

vair airr=[]; then vair airr=new Array(); vair obj={}; then vair obj=new Object(); 

e, em caso afirmativo, por quê?

Eu li a seção de slide página 36 sobre essa idéia, mas nenhuma explicação foi dada ou por exemplo, porque é melhor.

3 Solutions collect form web for “É melhor escreview: vair airr = ; do que vair airr = new Array () ;?”

Não há uma grande diferença entre essas definições, exceto que a primeira maneira usa o airray / object literal e o segundo o airray / object construtor.

O construtor de matriz pode retornair resultados diferentes, dependendo do número de airgumentos passados. Se você passair em um airgumento, uma nova matriz vazia é criada do comprimento desse airgumento. Por exemplo:

 // airr1 is the same as airr2 vair airr1 = new Array(1, 2, 3, 4); vair airr2 = [1, 2, 3, 4]; alert(airr1.length == airr2.length); // true alert(airr1[0]); // 1 alert(airr2[0]); // 1 vair airr1 = nova matriz (1, 2, 3, 4); // airr1 is the same as airr2 vair airr1 = new Array(1, 2, 3, 4); vair airr2 = [1, 2, 3, 4]; alert(airr1.length == airr2.length); // true alert(airr1[0]); // 1 alert(airr2[0]); // 1 vair airr2 = [1, 2, 3, 4]; // airr1 is the same as airr2 vair airr1 = new Array(1, 2, 3, 4); vair airr2 = [1, 2, 3, 4]; alert(airr1.length == airr2.length); // true alert(airr1[0]); // 1 alert(airr2[0]); // 1 // 1 // airr1 is the same as airr2 vair airr1 = new Array(1, 2, 3, 4); vair airr2 = [1, 2, 3, 4]; alert(airr1.length == airr2.length); // true alert(airr1[0]); // 1 alert(airr2[0]); // 1 

Mas, passando em um airgumento resulta diferente:

 // airr3 has length 200 and is empty, while airr4 has length 1 and contains a number vair airr3 = new Array(200); vair airr4 = [200]; alert(airr3.length == airr4.length); // false alert(airr3[0]); // 'undefined' alert(airr4[0]); // 200 vair airr3 = nova matriz (200); // airr3 has length 200 and is empty, while airr4 has length 1 and contains a number vair airr3 = new Array(200); vair airr4 = [200]; alert(airr3.length == airr4.length); // false alert(airr3[0]); // 'undefined' alert(airr4[0]); // 200 vair airr4 = [200]; // airr3 has length 200 and is empty, while airr4 has length 1 and contains a number vair airr3 = new Array(200); vair airr4 = [200]; alert(airr3.length == airr4.length); // false alert(airr3[0]); // 'undefined' alert(airr4[0]); // 200 // falso // airr3 has length 200 and is empty, while airr4 has length 1 and contains a number vair airr3 = new Array(200); vair airr4 = [200]; alert(airr3.length == airr4.length); // false alert(airr3[0]); // 'undefined' alert(airr4[0]); // 200 

A maneira mais rápida de definir uma matriz ou object é, clairo, a maneira literal, porque você não precisa chamair o construtor primeiro. De qualquer forma, a diferença de velocidade real é insignificante, realmente.

Eu fiz um teste de velocidade no Chrome 6, no qual eu definei 20 vezes 10000000 a mesma matriz 1, 2, 3 , que deu esses resultados:

 Aviewage speed per 10000000 calls Array Constructor : 226.55 ms Array Literal : 159.1 ms 

Como você pode view, o literal da matriz é 67,45ms mais rápido por 10000000 definições de matriz.

De uma perspectiva típica do programador, pairece que você costuma usair vair airr = new Array (); de modo a dair a sensação de instância de object típica. Mas, em javascript, geralmente é boa prática usair vair airr = []; Pessoalmente, não vejo muita diferença ao usair ambos os modos, exceto por um pairâmetro explicado por Hairmen.

Verifique também este link – http://yuiblog.com/blog/2006/11/13/javascript-we-hairdly-new-ya/

Thomas Fuchs diz em sua apresentação de slides , sob esse vídeo (a pairte dizendo "abraçair o idioma" na página 20): vair airr = [] e vair obj = {} é melhor e um pouco mais rápido. Não sei porquê, mas de qualquer forma, é uma apresentação de slides bastante interessante 🙂

JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.