1. ホーム
  2. javascript

[解決済み] JavaScriptの配列宣言で「{}」と「[]」の違いは何ですか?

2022-03-12 13:24:43

質問

JavaScriptの配列宣言で「{}」と「[]」はどう違うのですか? 通常、私は次のように宣言します。

var a=[];

という配列を宣言した意味は何ですか? var a={}

どのように解決するのですか?

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

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

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

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

追加機能は、マジック .length プロパティがあり、配列のアイテム数を記録することができます。 .push() , .pop() , .slice() , .splice() などなど... 配列のメソッドの一覧を見ることができます ここで .

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

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 の構文があります。

プロパティ名には任意の文字列値を指定することができます。


配列はオブジェクトなので、オブジェクトと同じ機能をすべて持っています。 オーダーメイド , シーケンシャル から始まる番号付きインデックスのリストです。 0 であり、ある長さまで続く。 配列は通常、数値インデックスによってアクセスされる項目の順序付きリストに使用されます。 また、配列は順序付きなので、リストの順序を管理するための便利な機能がたくさんあります .sort() やリストへの追加・削除を行うことができます。