いくつかの値と名前(キー)の組をまとめたものを、オブジェクトと呼びます。 波かっこ { } の中に、〈キー〉: 〈値〉 をカンマ区切りで並べること(オブジェクトリテラル)によって、指定したキーおよび値を持つオブジェクトを作ることができます。

例:

> let a = {x: 123, y: 456}; // {"x": 123, "y": 456} や {"y": 456, x: 123} と書いても同じ
undefined
> a.x
123
> a["y"]
456

値の参照と更新

上記の実行例のように、ドット . または角かっこ [ ] で、紐つけた値を参照、設定することができます。ドット . 演算子では、キーを JavaScript の識別子として書くことができます。一方、角かっこ [ ] 演算子の場合はキーとして任意の式を指定できます。

オブジェクトが指定したキーを持つかどうかは、 in 演算子を使って調べられます。

(続き)
> "x" in a
true
> "sqrt" in Math
true

存在しないキーを取得しようとした場合は、undefinedが返ります。

(続き)
> a.z
undefined
> a[100]
undefined

キーの列挙

Object.keys 関数で、オブジェクトの持つキーの一覧を、配列として取得できます。

(続き)
> Object.keys(a) // => [ 'x', 'y' ] または [ 'y', 'x' ]
[ 'x', 'y' ]

メソッド

(要執筆)

let a = {x: 123, y: 456, abs: function() { return Math.hypot(this.x, this.y); }};

オブジェクトには、キーに紐ついた値として関数を指定できます。

プロパティー

(要執筆) get / set Object.defineProperty

プロトタイプ

(要執筆) Object.create Object.getPrototypeOf

new 演算子

(要執筆)

JSON(ジェイソン; JavaScript Object Notation)

JavaScript のオブジェクトの記法は、(JavaScript プログラムとは独立して)データの記法としても使われています。

JSON で使えるのは、

null, true / false, 数値、文字列、配列、オブジェクト

のリテラル表記ですが、実際の JavaScript の表記よりも制限されています。例えば、オブジェクトのキーは識別子ではなく文字列リテラルとして与えなければなりません。

JSON文字列をJavaScriptのオブジェクトに変換するには、JSON.parse関数を使います。逆に、JavaScriptのオブジェクトをJSON文字列に変換するには、JSON.stringify関数を使います。

> JSON.parse(`{"x": 123, "y": 456}`)
{ x: 123, y: 456 }
> JSON.stringify({x: 123, y: 456})
'{"x":123,"y":456}'