Was ist der Unterschied zwischen „{}“ und „[]” beim Deklarieren eines JavaScript-Arrays? Normalerweise erkläre ich gerne
var a=[];
Was bedeutet es, das Array als zu deklarieren? var a={}
Venkat
Was ist der Unterschied zwischen „{}“ und „[]” beim Deklarieren eines JavaScript-Arrays? Normalerweise erkläre ich gerne
var a=[];
Was bedeutet es, das Array als zu deklarieren? var a={}
jfriend00
Niemand scheint den Unterschied zwischen einem Array und einem Objekt zu erklären.
[]
deklariert ein Array.
{}
deklariert ein Objekt.
Ein Array hat alle Funktionen eines Objekts mit zusätzlichen Funktionen (Sie können sich ein Array wie eine Unterklasse eines Objekts vorstellen), wobei zusätzliche Methoden und Fähigkeiten in der Array-Unterklasse hinzugefügt werden. In der Tat, typeof [] === "object"
um Ihnen weiter zu zeigen, dass ein Array ein Objekt ist.
Die zusätzlichen Funktionen bestehen aus einer Magie .length
-Eigenschaft, die die Anzahl der Elemente im Array verfolgt, und eine ganze Reihe von Methoden zum Bearbeiten des Arrays, z .push()
, .pop()
, .slice()
, .splice()
etc… Sie können eine Liste von Array-Methoden sehen hier.
Ein Objekt gibt Ihnen die Möglichkeit, einen Eigenschaftsnamen mit einem Wert zu verknüpfen, wie in:
var x = {};
x.foo = 3;
x["whatever"] = 10;
console.log(x.foo); // shows 3
console.log(x.whatever); // shows 10
Auf die Objekteigenschaften kann entweder über die zugegriffen werden x.foo
Syntax oder über die Array-ähnliche Syntax x["foo"]
. Der Vorteil der letztgenannten Syntax besteht darin, dass Sie wie eine Variable als Eigenschaftsnamen verwenden können x[myvar]
und mit der letztgenannten Syntax können Sie Eigenschaftsnamen verwenden, die Zeichen enthalten, die Javascript in der nicht zulässt x.foo
Syntax.
Ein Eigenschaftsname kann ein beliebiger Zeichenfolgenwert sein.
Ein Array ist ein Objekt, also hat es die gleichen Fähigkeiten wie ein Objekt plus eine Reihe zusätzlicher Funktionen zum Verwalten von bestellt, sequentiell Liste der nummerierten Indizes beginnend mit 0
und geht bis zu einer gewissen Länge. Arrays werden normalerweise für eine geordnete Liste von Elementen verwendet, auf die über einen numerischen Index zugegriffen wird. Und da das Array geordnet ist, gibt es viele nützliche Funktionen, um die Reihenfolge der Liste zu verwalten .sort()
oder um Dinge zur Liste hinzuzufügen oder daraus zu entfernen.
Warum kann ich tun [].
aber nicht {}.
?
– Suraj Jain
4. Januar 2020 um 13:33 Uhr
@SurajJain – Ich verstehe den Kontext nicht. Vielleicht sollten Sie Ihre eigene Frage schreiben und den Gesamtkontext dessen erläutern, was Sie zu tun versuchen.
– jfriend00
4. Januar 2020 um 16:35 Uhr
Eigentlich können wir alles tun, was wir mit Arrays tun können, indem wir leere Array-Literale wie verwenden [].splice
usw., aber mit leerem Objektliteral {}
Wir sind es nicht, wie wenn ich es tue {}.hasOwnProperty
es Fehler aus, warum so?
– Suraj Jain
5. Januar 2020 um 4:18 Uhr
@SurajJain – Es hat wahrscheinlich mit der Sprachgrammatik im Kontext zu tun, weil {}
bedeutet auch einen neuen Block, sodass Sie es nicht verwenden können, um ein Objekt in einem Kontext zu bezeichnen, in dem es einen neuen Block bedeuten könnte oder in dem seine Bedeutung mehrdeutig sein könnte. Du kannst tun let val = {value: true}.hasOwnProperty("value"); console.log(val);
.
– jfriend00
5. Januar 2020 um 5:00 Uhr
Ja, das könnte sein, es bedeutet auch einen neuen Block. Danke für die Klarstellung.
– Suraj Jain
5. Januar 2020 um 8:18 Uhr
Rolli Agrawal
Wenn Sie erklären
var a=[];
Sie deklarieren ein leeres Array.
Aber wenn Sie erklären
var a={};
Sie deklarieren ein Objekt.
Obwohl Array auch Objekt in Javascript ist, handelt es sich um numerische Schlüsselpaarwerte. Diese haben alle Funktionen von Objekten, haben aber einige Array-Methoden wie Push, Splice, Length und so weiter hinzugefügt.
Wenn Sie also einige Werte möchten, bei denen Sie numerische Tasten verwenden müssen, verwenden Sie Array. Sonst Objekt verwenden. Sie können Objekte erstellen wie:
var a={name:"abc",age:"14"};
Und kann auf Werte wie zugreifen
console.log(a.name);
Danke für deine Antwort @Mytri
– Venkat
4. November 2015 um 6:20 Uhr
So erstellen Sie Instanzen und greifen auf das Schlüssel-Wert-Paar zu
– Venkat
4. November 2015 um 6:21 Uhr
Ein kleiner Beispielcode wird für mich sehr nützlich sein @Tushar
– Venkat
4. November 2015 um 6:21 Uhr
Beispiel ist nützlich @Mytri
– Venkat
4. November 2015 um 6:29 Uhr
@ Venkat var arr = ['A', 'B']; console.log(arr[0]) // A
und var obj = { name: 'A', surname: 'B'}; console.log(obj.name); // A OR console.log(obj['name'])
– Tuschar
4. November 2015 um 6:32 Uhr
Hemina
var a = [];
Es wird für Klammern für ein Array einfacher Werte verwendet. z.B.
var name=["a","b","c"]
var a={}
wird auch für Wertarrays und Objekte/Eigenschaften verwendet. z.B.
var programmer = { 'name':'special', 'url':'www.google.com'}
Rahul Tripathi
Es kann so verstanden werden:
var a= []; //creates a new empty array
var a= {}; //creates a new empty object
Das kann man auch nachvollziehen
var a = {};
ist äquivalent zu var a= new Object();
Notiz:
Sie können Arrays verwenden, wenn Sie sich um die Reihenfolge der Elemente kümmern (gleichen Typs) in Ihrer Sammlung, ansonsten können Sie Objekte verwenden. Bei Objekten ist die Reihenfolge nicht gewährleistet.
Tomer W
das sind zwei verschiedene dinge..
[]
deklariert ein Array:
gegeben, eine Liste von Elementen, die durch einen numerischen Index gehalten werden.
{}
deklariert ein neues Objekt:
gegeben, ein Objekt mit Feldern mit Namen und Typ+Wert,
manche stellen es sich gerne als “Assoziatives Array” vor. sind aber in ihrer Darstellung keine Arrays.
Sie können mehr lesen @ Dieser Artikel
riteshkasat
Syntax von JSON
Objekt = {} | { Mitglieder }
Array = [] | [ elements ]
Wert = Zeichenfolge|Zahl|Objekt|Array|Wahr|Falsch|Null
Michael Eden
In JavaScript sind Arrays und Objekte eigentlich sehr ähnlich, obwohl sie äußerlich etwas anders aussehen können.
Für ein Array:
var array = [];
array[0] = "hello";
array[1] = 5498;
array[536] = new Date();
Wie Sie sehen, können Arrays in JavaScript spärlich sein (gültige Indizes müssen nicht fortlaufend sein) und sie können enthalten irgendein Art der Variablen! Das ist ziemlich bequem.
Aber wie wir alle wissen, ist JavaScript seltsam, also hier sind einige seltsame Teile:
array["0"] === "hello"; // This is true
array["hi"]; // undefined
array["hi"] = "weird"; // works but does not save any data to array
array["hi"]; // still undefined!
Dies liegt daran, dass alles in JavaScript ein Objekt ist (weshalb Sie auch ein Array mit erstellen können new Array()
). Infolgedessen wird jeder Index in einem Array in eine Zeichenfolge umgewandelt und dann in einem Objekt gespeichert. Ein Array ist also nur ein Objekt, das niemandem erlaubt, etwas mit einem Schlüssel zu speichern, der keine positive Ganzzahl ist.
Was sind also Objekte?
Objekte in JavaScript sind wie Arrays, aber der “Index” kann eine beliebige Zeichenfolge sein.
var object = {};
object[0] = "hello"; // OK
object["hi"] = "not weird"; // OK
Sie können sich sogar dafür entscheiden, die eckigen Klammern nicht zu verwenden, wenn Sie mit Objekten arbeiten!
console.log(object.hi); // Prints 'not weird'
object.hi = "overwriting 'not weird'";
Sie können sogar noch weiter gehen und Objekte wie folgt definieren:
var newObject = {
a: 2,
};
newObject.a === 2; // true
Aber in den neuesten Chrome- und Firefox-Versionen array["hi"] = "weird"; array["hi"];// gives output as weird
– Ayush Katiyar
24. Dezember 2020 um 15:54 Uhr
var a = {};
ist ein Objekt-Schlüsselwert Paare.var a = [];
ist ein Array-Wert, der in sequentiellen Indizes gespeichert ist.– Tuschar
4. November 2015 um 6:15 Uhr
Sie erstellen kein Array, wenn Sie es verwenden
{}
du erschaffstobject
– Kunstseide
4. November 2015 um 6:17 Uhr
Wie lautet die genaue Frage? Unterschied zwischen Objekt und Reihe? Was versuchst du zu machen? Fügen Sie etwas mehr Code hinzu
– Tuschar
4. November 2015 um 6:35 Uhr
Ich möchte den Unterschied zwischen wissen [] und {} Erklärung, ich habe deine Antwort @Tushar
– Venkat
4. November 2015 um 6:39 Uhr
Die Antwort ist das
[]
und{}
deklarieren verschiedene Dinge wie im Dup beschrieben.{}
ist KEIN Array.– jfriend00
4. November 2015 um 15:00 Uhr