Heim >Web-Frontend >js-Tutorial >Hinzufügen benannter Eigenschaften zu JavaScript-Arrays: Objektliteral vs. Klammernotation?
Hinzufügen benannter Eigenschaften zu Arrays: Eine JavaScript-Eigenart
In JavaScript können Arrays auf unerwartete Weise manipuliert werden, einschließlich der Möglichkeit, benannte Eigenschaften hinzuzufügen Eigenschaften, als wären sie Objekte. Dies wirft die Frage auf: Gibt es einen grundlegenden Unterschied zwischen der Deklaration eines Arrays mit benannten Eigenschaften mithilfe von Klammern und einem Objektliteral?
Die kurze Antwort lautet: Ja, es gibt einen Unterschied.
Während sich beide Methoden oberflächlich betrachtet ähnlich verhalten und bei Überprüfung mit typeof() den Typ „Objekt“ zurückgeben, unterscheiden sie sich in ihrer zugrunde liegenden Natur. Arrays sind für numerisch indizierte Daten gedacht, während Objekte für nicht numerische Schlüssel konzipiert sind.
Um diese Unterscheidung zu veranschaulichen, beachten Sie Folgendes:
var myArray = Array(); myArray['A'] = "Athens"; myArray['B'] = "Berlin"; alert(myArray.length);
Dieser Code zeigt „0“ an, wohingegen man erwarten könnte, dass dort „2“ angezeigt wird. Dies liegt daran, dass die dem Array hinzugefügten benannten Eigenschaften keinen Einfluss auf dessen Längeneigenschaft haben. Stattdessen werden sie als zusätzliche Eigenschaften für das Array-Objekt behandelt.
Im Gegensatz dazu würde ein mit benannten Eigenschaften deklariertes Objektliteral seine Länge korrekt widerspiegeln:
var myObject = {'A': 'Athens', 'B': 'Berlin'}; alert(myObject.length); // This would display '2'
Daher ist dies zwar möglich Das Hinzufügen benannter Eigenschaften zu Arrays gilt als „Missbrauch“ und sollte vermieden werden. Für nicht numerische Tasten empfiehlt es sich, stattdessen ein Objekt zu verwenden.
Das obige ist der detaillierte Inhalt vonHinzufügen benannter Eigenschaften zu JavaScript-Arrays: Objektliteral vs. Klammernotation?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!