105 votes

Tableau JavaScript : accolades et parenthèses

Quelle est la différence entre chacune des définitions de tableau suivantes.

var myArray = [];
var myArray = {};
var myArray = new Array();

132voto

johusman Points 2212

La première et la troisième sont équivalentes et créent un nouveau tableau. La deuxième crée un nouvel objet vide, pas un tableau.

var myArray = []; //create a new array
var myArray = {}; //creates **a new empty object**
var myArray = new Array(); //create a new array

30voto

leepowers Points 16420

var myObject = {}; est équivalent à var myObject = new Object();

Donc, le deuxième exemple n'est pas un Array mais un général Object .

Cela peut prêter à confusion car Array est une classe et Object est une classe - plus précisément Array est une sous-classe de Object . Donc, dans l'ensemble, Object sémantique sont applicables à un Array :

var o = [];
o.push('element1');
o.push('element2');
o['property1'] = 'property value';  // define a custom property.
console.log(o.property1);
console.log(o.length);  // Outputs '2' as we've only push()'ed two elements onto the Array

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