JavaScript オブジェクトでは、リテラルはキーと値のペアで構成されています。JavaScript のキーは常に文字列ですが、値は任意のデータ型にすることができます。
JavaScript は、キーを定義するためのシンタックス シュガーを提供します。たとえば、文字列リテラルとは異なり、キーを引用する必要はありません。したがって、次の 2 つの例は同等です。
{ x: 0 } // example 1
{ "x": 0 } // example 2
ただし、このシンタックス シュガーは、間に空白 (スペース、タブ、改行など) がない識別子に対してのみ機能します。たとえば、次は JavaScript では無効です。
{ a property: 0 } // whitespace not allowed in identifiers
ただし、識別子を引用することで、この制限を回避できます。
{ "a property": 0 } // valid
true
ブール値 (またはfalse
)、数値リテラル、undefined
およびnull
をキーとして使用することもできます。ただし、文字列に強制されることに注意してください。したがって、次のことができます。
var o = {
undefined: 1,
null: 2,
true: 3,
false: 4,
0: 5
};
次に、次のようにアクセスできます。
alert(o.undefined); // 1
alert(o.null); // 2
alert(o.true); // 3
alert(o.false); // 4
alert(o[0]); // 5
最後のステートメントは重要です。数値リテラル自体は、有効な識別子として分類されません。[]
したがって、ドット表記 ( ) の代わりに配列ブラケット表記 ( ) を使用.
してアクセスする必要があります。
JavaScript のすべてのキーは文字列であるため、次のようにすることもできます。
alert(o["undefined"]); // 1
alert(o["null"]); // 2
alert(o["true"]); // 3
alert(o["false"]); // 4
alert(o["0"]); // 5
ただし、オブジェクト、配列、または関数をキーとして使用することはできません。たとえば、次は無効です。
{ {1: 2}: 3 } // objects can't be used as keys
{ [1]: 2 } // arrays can't be used as keys
{ function () {}: true } // functions can't be used as keys
オブジェクトリテラルについて知っておく必要があるのはこれだけです。