38 votes

Quel est le problème avec var x = new Array();

Dans JSLint, il prévient qu'

var x = new Array();

(Ce n'est pas un vrai nom de la variable) doit être

var result = [];

Quel est le problème avec le 1er de la syntaxe? Quel est le raisonnement derrière cette suggestion?

70voto

Daniel Lew Points 39063

Il est plus sûr d'utiliser des [] que c'est pour utiliser new Array(), parce que vous pouvez effectivement remplacer la valeur de Array en JavaScript:

Array = function() { };

var x = new Array();
// x is now an Object instead of an Array.

En d'autres termes, [] est sans ambiguïté.

26voto

Shog9 Points 82052

Crockford n'aime pas new. Par conséquent, JSLint attend que vous pour l'éviter, lorsque cela est possible. Et la création d'un nouvel objet array est possible sans l'aide d' new....

7voto

Parris Points 4366

Il semble que vous pouvez obtenir des performances différentes sur la base de laquelle vous utilisez, et pour quel but selon le navigateur ou de l'environnement:

http://jsperf.com/new-array-vs-literal/11 ( [1,.2] vs new Array(1,.2) ) la traduction littérale est plus rapide dans ce cas.

http://jsperf.com/new-array-vs-literal/7 ( new Array(500000) vs [].longueur(500000) ) nouveau Tableau est plus rapide dans google chrome, la version v21 il semble que pour ce test d'environ 7% ou 30%) en fonction de ce que vous faites.

5voto

kennebec Points 33886

Rien de mal avec l'une ou l'autre forme, mais vous avez l'habitude de voir des littéraux dans la mesure du possible-

var s=" n'est pas plus correct que var s=new String()....

2voto

Rudd Zwolinski Points 6852

Il n'y a rien de mal avec la première syntaxe de soi. En fait, sur w3schools, il répertorie new Array() comme le moyen de créer un tableau. Le problème, c'est que c'est le "vieux chemin". La "nouvelle voie", [] est plus courte, et vous permet d'initialiser les valeurs dans le tableau, comme en ["foo", "bar"]. La plupart des développeurs préfèrent [] de new Array() en termes de bon style.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X