Quelle est la différence entre chacune des définitions de tableau suivantes.
var myArray = [];
var myArray = {};
var myArray = new Array();
Quelle est la différence entre chacune des définitions de tableau suivantes.
var myArray = [];
var myArray = {};
var myArray = new Array();
Réponses:
Le premier et le troisième sont équivalents et créent un nouveau tableau. Le second 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
myObject["someValue"]
ou myObject.someValue
. L'objet vide créé par {}
ne possède bien sûr pas ces propriétés, mais vous pouvez leur attribuer de la même manière:myObject.someValue = "hello!"
var a = new Array(5)
et var b = [5]
, alors a
≠ b
(puisque a.length
= 5 while b.length
= 1, a[0]
est undefined
while b[0]
est 5, et ainsi de suite.)
var a;
et var a = {};
le même?
var myObject = {};
équivaut à var myObject = new Object();
Ainsi, le deuxième exemple n'est pas un Array
mais un général Object
.
Cela peut prêter à confusion car Array
une classe et Object
une classe - plus précisément Array
une sous-classe de Object
. Donc, dans l'ensemble, la Object
sémantique est applicable à 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
o['property1'] = 'property value'
, vous n'ajoutez pas réellement un élément au tableau, mais définissez une propriété de l' objet tableau . Confus? Je te l'ai dit;) En JavaScript, fondamentalement, tout est un objet. D' autres objets, comme Array
, RegExp
... étendent l'objet de base avec des fonctionnalités supplémentaires. Un objet simple et vide est créé avec les accolades plain_obj = {}
.