174 votes

Quelles sont les meilleures pratiques à suivre lorsque vous déclarez un tableau en Javascript ?

Quand j’ai besoin de déclarer un nouveau tableau j’ai utiliser cette notation

Mais lors de l’essai en ligne, par exemple sur jsbin, un avertissement signale moi de « Utiliser la notation littérale de tableau []. »

Je n’ai pas trouvé une raison de ne pas utiliser le constructeur. Est en quelque sorte moins efficace que l’utilisation de `` ? Ou c’est une mauvaise habitude ?

Y a-t-il une bonne raison d’utiliser au lieu de ?

258voto

Alnitak Points 143355

Pour la plupart, les gens utilisent des var a = [] parce que Douglas Crockford dit.

Ses raisons sont la non-intuitive et comportement incohérent new Array():

var a = new Array(5);     // an array pre-sized to 5 elements long
var b = new Array(5, 10); // an array with two elements in it

Notez qu'il n'y a aucune manière avec new Array() créer un tableau avec seulement un pré nombre spécifié par l'élément en elle!

À l'aide de [] est en fait plus efficace, et aussi plus sûr! Il est possible de remplacer les Array constructeur et lui faire faire des choses bizarres, mais vous ne pouvez pas remplacer le comportement de l' [].

Personnellement, j'utilise toujours l' [] de la syntaxe, et, de même, toujours utiliser {} de la syntaxe à la place de new Object().

48voto

zzzzBov Points 62084

Une différence importante est qu' [] sera toujours instancier un nouveau Tableau, alors que new Array pourrait être détourné pour créer un objet différent.

(function () {
    "use strict";
    var foo,
        bar;
    //don't do this, it's a bad idea
    function Array() {
        alert('foo');
    }
    foo = new Array();
    bar = [];
}());​

Dans mon exemple de code, j'ai gardé l' Array fonction cachée du reste du document champ d'application, mais il est plus que probable que si vous lancez jamais dans ce genre de problème que le code ne sera pas ont été laissés dans un joli fermeture, et risquent d'être difficiles à localiser.

Avertissement: Ce n'est pas une bonne idée de détourner l' Array constructeur.

26voto

JL235 Points 659

pour la maintenabilité, utilisez []

Le littéral de tableau est de plus en plus prévisibles, comme la plupart des développeurs de l'utiliser. La plupart de la matrice de l'utilisation, il n'y a à l'aide de la traduction littérale, et il y a des avantages à avoir votre code de correspondre avec ce que les autres développeurs de l'utiliser.

pour les tableaux vides, utilisez []

var ns = [];
var names = [ 'john', 'brian' ];

Comme indiqué ici, à l'aide de la coquille vide et un couple d'éléments connus est fatster que le constructeur Array.

pour un tableau de taille connue, utilisez new Array(size)

Si la taille est connue, à l'aide de la Matrice de constructeur améliore sensiblement les performances. Mais cela signifie aussi que vous avez à traiter avec un tableau qui a déjà 'undefined' remplissage toutes ses valeurs.

Comme indiqué ici

// fill an array with 100 numbers
var ns = new Array( 100 );
for ( var i = 0; i < 100; i++ ) {
    ns[i] = i;
}

Cela fonctionne aussi pour les très petits tableaux de trop.

12voto

jAndy Points 93076

Non, il n'y a aucune raison d'utiliser une notation par rapport à l'autre pour les tableaux vides.

Cependant, la plupart des navigateurs affichent une performance légèrement meilleure en utilisant x = []; que d'appeler le constructeur .

Si vous avez besoin de créer un tableau avec une taille spécifique, vous devez utiliser x = new Array(10); par exemple, ce qui créerait un tableau avec 10 undefined slots.

6voto

RDX Points 803

Les deux sont corrects. Mais la plupart des gens utilisent des var a = []

Trois Façons de Déclarer un Tableau en JavaScript.

méthode 1: On peut déclarer explicitement un tableau avec le JavaScript "nouveau" mot clé pour instancier le tableau dans la mémoire (c'est à dire de le créer et de le rendre disponible).

// Declare an array (using the array constructor)
var arlene1 = new Array();
var arlene2 = new Array("First element", "Second", "Last");

méthode 2: nous utilisons une autre méthode pour déclarer des tableaux.

// Declare an array (using literal notation)
var arlene1 = [];
var arlene2 = ["First element", "Second", "Last"];

méthode 3: JavaScript vous permet également de créer des tableaux indirectement, en appelant des méthodes spécifiques.

// Create an array from a method's return value
var carter = "I-learn-JavaScript";
var arlene3 = carter.split("-");

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