Risposte:
Il primo e il terzo sono equivalenti e creano un nuovo array. Il secondo crea un nuovo oggetto vuoto, non un array.
var myArray = []; //create a new array
var myArray = {}; //creates **a new empty object**
var myArray = new Array(); //create a new array
myObject["someValue"]o myObject.someValue. L'oggetto vuoto creato da {}ovviamente non avrà queste proprietà, ma puoi assegnargli allo stesso modo:myObject.someValue = "hello!"
var a = new Array(5)and var b = [5], then a≠ b(since a.length= 5 while b.length= 1, a[0]is undefinedwhile b[0]is 5, and so on.)
var a;e var a = {};lo stesso?
var myObject = {}; è equivalente a var myObject = new Object();
Quindi, il secondo esempio non è un Arrayma un generale Object.
Questo può creare confusione poiché Arrayè una classe ed Objectè una classe - più precisamente Arrayè una sottoclasse di Object. Quindi, in generale, la Objectsemantica è applicabile a 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', non stai effettivamente aggiungendo un elemento all'array, ma impostando una proprietà dell'oggetto array . Confuso? Te l'ho detto;) In JavaScript, praticamente tutto è un oggetto. Altri oggetti, come Array, RegExp, ... estendono l'oggetto base con ulteriori funzionalità. Un oggetto semplice e vuoto viene creato con le parentesi graffe plain_obj = {}.