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 undefinedwhile 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 Arraymais un général Object.
Cela peut prêter à confusion car Arrayune classe et Objectune classe - plus précisément Arrayune sous-classe de Object. Donc, dans l'ensemble, la Objectsé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 = {}.