web-dev-qa-db-ja.com

JavaScript配列を宣言する際の「{}」と「[]」の違いは何ですか?

JavaScript配列を宣言する際の「{}」と「[]」の違いは何ですか?通常私は次のように宣言します

var a=[];

配列をvar a={}として宣言する意味は何ですか

34
Venkat

配列とオブジェクトの違いを説明している人はいないようです。

[]は配列を宣言しています。

{}はオブジェクトを宣言しています。

配列には、オブジェクトのすべての機能と追加機能(オブジェクトのサブクラスのような配列を考えることができます)があり、追加のメソッドと機能がArrayサブクラスに追加されます。実際、typeof [] === "object"は、配列がオブジェクトであることをさらに示します。

追加の機能は、配列内のアイテム数を追跡するマジック.lengthプロパティと、.Push().pop().slice().splice()などの配列を操作するための多数のメソッドで構成されます。配列メソッドのリストを見ることができます here

オブジェクトを使用すると、次のようにプロパティ名と値を関連付けることができます。

var x = {};
x.foo = 3;
x["whatever"] = 10;
console.log(x.foo);      // shows 3
console.log(x.whatever); // shows 10

オブジェクトプロパティには、x.foo構文または配列のような構文x["foo"]を使用してアクセスできます。後者の構文の利点は、変数名をx[myvar]などのプロパティ名として使用でき、後者の構文を使用すると、Javascriptがx.fooで許可しない文字を含むプロパティ名を使用できることです。構文。

プロパティ名には任意の文字列値を使用できます。


配列はオブジェクトであるため、オブジェクトと同じ機能に加えて、orderedsequential0から始まり、ある程度の長さになる番号付きインデックスのリスト。配列は通常、数値インデックスによってアクセスされるアイテムの順序付きリストに使用されます。また、配列は順序付けられているため、リスト.sort()の順序を管理したり、リストに項目を追加または削除したりするための便利な機能がたくさんあります。

58
jfriend00

宣言するとき

var a=[];

空の配列を宣言しています。

しかし、あなたが宣言しているとき

var a={};

objectを宣言しています。

配列もJavascriptのオブジェクトですが、数値キーのペア値です。オブジェクトのすべての機能を備えていますが、Push、Splice、Lengthなどの配列のメソッドをいくつか追加しました。

したがって、数値キーを使用する必要があるいくつかの値が必要な場合は、配列を使用します。それ以外の場合はオブジェクトを使用します。次のようなオブジェクトを作成できます。

var a={name:"abc",age:"14"}; 

そして、次のような値にアクセスできます

console.log(a.name);
10
Roli Agrawal
var a = [];

単純な値の配列の括弧に使用されます。例えば。

var name=["a","b","c"]

var a={}

値配列およびオブジェクト/プロパティにも使用されます。例えば。

var programmer = { 'name':'special', 'url':'www.google.com'}
4
Hemina

次のように理解できます。

var a= []; //creates a new empty array
var a= {}; //creates a new empty object

また、それを理解することができます

var a = {};var a= new Object();と同等です

注:

コレクション内の要素の順序(と同じタイプ)がわからない場合は、配列を使用できます。それ以外の場合はオブジェクトを使用できます。オブジェクトでは、順序は保証されません。

3
Rahul Tripathi

JSONの構文

オブジェクト= {} | {メンバー}

  • メンバー=ペア|ペア、メンバー
  • ペア=文字列:値

配列= [] | [要素]

  • 要素=値|値要素

値=文字列|番号|オブジェクト|配列| true | false | null

1
riteshkasat

JavaScriptの配列とオブジェクトは実際には非常に似ていますが、外観は少し異なる場合があります。

配列の場合:

var array = [];
array[0] = "hello";
array[1] = 5498;
array[536] = new Date();

ご覧のように、JavaScriptの配列はスパースであり(有効なインデックスは連続している必要はありません)、any type of variableを含むことができます!それはかなり便利です。

しかし、私たちは皆JavaScriptが奇妙であることを知っているので、ここにいくつかの奇妙なビットがあります:

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!

これは、JavaScriptのすべてがオブジェクトであるためです(そのため、new Array()を使用して配列を作成することもできます)。結果として、配列内のすべてのインデックスは文字列に変換され、オブジェクトに格納されます。したがって、配列は、正の整数ではないキーを持つものを誰も格納できないオブジェクトです。

オブジェクトとは何ですか?

JavaScriptのオブジェクトは配列に似ていますが、「インデックス」には任意の文字列を指定できます。

var object = {};
object[0] = "hello"; // OK
object["hi"] = "not weird"; // OK

オブジェクトを操作するときに角括弧を使用しないこともできます!

console.log(object.hi); // Prints 'not weird'
object.hi = "overwriting 'not weird'";

さらに進んで、次のようにオブジェクトを定義できます。

var newObject = {
    a: 2,
};
newObject.a === 2; // true
1
Michael Eden

それらは2つの異なるものです。

[]は配列を宣言しています:
given、数値インデックスが保持する要素のリスト。

{}は新しいオブジェクトを宣言しています:
given、Namesおよびtype + valueのフィールドを持つオブジェクト、
「連想配列」と考える人もいます。ただし、配列ではありません。

もっと読むことができます@ この記事

1
Tomer W