Was ist der Unterschied zwischen „{}“ und „[]” beim Deklarieren eines JavaScript-Arrays?

Lesezeit: 6 Minuten

Benutzer-Avatar
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={}

  • 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 erschaffst object

    – 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


Benutzer-Avatar
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

Benutzer-Avatar
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

Benutzer-Avatar
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'}

Benutzer-Avatar
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.

Benutzer-Avatar
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

Benutzer-Avatar
riteshkasat

Syntax von JSON

Objekt = {} | { Mitglieder }

  • Mitglieder = Paar | Paar, Mitglieder
  • Paar = Zeichenkette: Wert

Array = [] | [ elements ]

  • Elemente = Wert | Wertelemente

Wert = Zeichenfolge|Zahl|Objekt|Array|Wahr|Falsch|Null

Benutzer-Avatar
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

1009990cookie-checkWas ist der Unterschied zwischen „{}“ und „[]” beim Deklarieren eines JavaScript-Arrays?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy