est-Différence entre "new Array (..)" et "[..]" dans JavaScript?
var myCars=new Array("Saab","Volvo","BMW");
et
var myCars=["Saab","Volvo","BMW"];
exactement la même chose?
est-Différence entre "new Array (..)" et "[..]" dans JavaScript?
var myCars=new Array("Saab","Volvo","BMW");
et
var myCars=["Saab","Volvo","BMW"];
exactement la même chose?
Oui, dans ce cas, ils sont identiques.
Il y a une différence si vous avez un seul élément, et qu'il est numérique. Cela va créer un tableau avec un seul élément:
var myNumbers = [42];
mais cela va créer un tableau avec la longueur 42:
var myNumbers = new Array(42);
+1. Nice :) ... –
Le deuxième exemple n'aura pas vraiment d'éléments '42', seul' length 'sera '42'. Les propriétés de '0' à' 41' n'existent pas dans l'objet, par exemple: 'new Array (42) .hasOwnProperty ('0'); // false'. – CMS
@CMS: Oui, vous avez raison. Les tableaux en Javascript sont un peu spéciaux de cette façon ... J'ai ajusté la réponse. – Guffa
Oui, ce sont les mêmes. Il n'y a pas de forme primitive d'un tableau, car les tableaux en JavaScript sont toujours des objets. La première notation (new Array
constructor syntax) a été fortement utilisée dans les débuts de JavaScript où la notation courte, n'était pas bien supportée.
Notez qu'il existe une différence de comportement: si vous passez un argument numérique unique, à new Array
, comme new Array(20)
, elle retourne un nouveau tableau pré-initialisés avec ce nombre d'éléments 0
-n - 1
, mis à undefined
.
et comment est-ce utile? Je fais référence à votre 2e paragraphe – Xsmael
Oui, ils sont. Sachez cependant que lorsque vous passez un seul paramètre numérique au constructeur Array
, vous spécifiez le length
initial du tableau, au lieu de la valeur du premier élément. Par conséquent:
var myCars1 = new Array(10);
... se comportera différemment du tableau suivant littéral:
var myCars2 = [10];
... notez les points suivants:
console.log(myCars1[0]); // returns undefined
console.log(myCars1.length); // returns 10
console.log(myCars2[0]); // returns 10
console.log(myCars2.length); // returns 1
C'est une des raisons pour lesquelles il est souvent recommandé de s'en tenir à la notation littérale de tableau: var x = []
.
Vous pouvez obtenir des réponses ici. http://stackoverflow.com/questions/931872/whats-the-difference-between-array-and-while-declaring-a-javascript-arr – c4il