Antworten:
Das erste und das dritte sind äquivalent und erstellen ein neues Array. Der zweite erstellt ein neues leeres Objekt, kein Array.
var myArray = []; //create a new array
var myArray = {}; //creates **a new empty object**
var myArray = new Array(); //create a new array
myObject["someValue"]oder myObject.someValue. Das leere Objekt, das von {}will erstellt wird, hat natürlich nicht diese Eigenschaften, aber Sie können sie auf die gleiche Weise zuweisen:myObject.someValue = "hello!"
var a = new Array(5)und var b = [5], dann a≠ b(da a.length= 5 während b.length= 1, a[0]ist undefinedwährend b[0]5 ist und so weiter.)
var a;und var a = {};das gleiche?
var myObject = {}; ist äquivalent zu var myObject = new Object();
Das zweite Beispiel ist also kein Arrayallgemeines Object.
Dies kann verwirrend werden, ebenso Arraywie eine Klasse und Objecteine Klasse - genauer gesagt Arrayeine Unterklasse von Object. Im Großen und Ganzen ist die ObjectSemantik also anwendbar auf 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'fügen Sie dem Array kein Element hinzu, sondern legen eine Eigenschaft des Array-Objekts fest . Verwirrt? Ich habe es dir gesagt;) In JavaScript ist im Grunde alles ein Objekt. Andere Aufgaben, wie Array, RegExp... erweitern das Basisobjekt mit weiteren Funktionen. Ein einfaches, leeres Objekt wird mit den geschweiften Klammern erstellt plain_obj = {}.