連想配列・Object【オブジェクト】オブジェクト2015 (6) / 2017 (8) / 2019 (10) / 2022 (13)
メモ
概要
- プロパティのコレクション (波括弧:{ } を使用)
- 連想配列として利用可能 (通常の配列は角括弧:[ ] )
- 記述方法:オブジェクトリテラル
- プロパティ アクセス:(下記 例 を参照)
- object . PropName
- object [ PropNameString ]
- 標準組み込みオブジェクトの判定
(尚、[ @@toStringTag ]【タグ】プロパティ を定義すれば ユーザ定義オブジェクトも判定可能 例 )- typeof【型判定 演算子】
- 全て object
- リテラル型と該当オブジェクトは別 (例:String型とStringオブジェクトは別)
- Object.prototype.toString【文字列変換】を使用 (下記 例 を参照)
- リテラル型と該当オブジェクトは、同一オブジェクトと判定 (例:String型とStringオブジェクトは、Stringオブジェクトと判定)
- 呼出しにはFunction【関数】オブジェクトのcall【関数呼出し (可変引数)】 を使用
- typeof【型判定 演算子】
- ユーザ定義オブジェクトの判定
- instanceof【コンストラクタ関数判定 演算子】
- toString【文字列変換】 ([ @@toStringTag ]【タグ】プロパティ 定義)
- クラス定義による継承可能
参考:その他 配列・コレクション
関連
- 関連オブジェクト比較
Object【オブジェクト】
の連想配列Map【マップ】 Set
【一意コレクション】WeakMap
【弱参照マップ】WeakSet
【弱参照一意コレクション】コンストラクタ オブジェクトリテラル
new Object ( [ value ] )new Map
( [ iterable ] )new Set
( [ iterable ] )new WeakMap
( [ iterable ] )new WeakSet
( [ iterable ] )キー 文字列
Symbol任意 オブジェクト
Symbol値 任意 任意 任意 任意 オブジェクトのみ ガベージ コレクション 手動 手動 自動 要素数 Object.keys ( obj ).length size プロパティ size プロパティ 要素追加・更新 obj.key
obj [ 'key' ]
セッターset ( key, value ) add ( value ) set ( key, value ) add ( value ) 要素有無 hasOwnProperty(V) has ( key ) has ( value ) has ( key ) has ( value ) 要素値取得 obj.key
obj [ 'key' ]
ゲッターget ( key ) get ( key ) 要素削除 delete obj.key
delete obj [ 'key' ]delete ( key ) delete ( value ) delete ( key ) delete ( value ) 全要素削除 clear ( ) clear ( ) イテレータ
オブジェクト作成
(キー・値)Object.entries( O )
(配列取得)[@@iterator] ( )
entries ( )entries ( )
(キー = 値)イテレータ
オブジェクト作成
(キー)Object.keys( O )
(配列取得)keys ( ) keys ( )
(キー = 値)イテレータ
オブジェクト作成
(値)Object.values(O)
(配列取得)values ( ) [@@iterator] ( )
values ( )反復要素処理 for-in for-of
forEach
(callbackfn [, thisArg])
next()for-of
forEach
(callbackfn [, thisArg])
next()グループ分け groupBy ( items, callbackfn ) groupBy ( items, callbackfn )
外部リンク
- ECMA-262 (英語)
The Object Type ES2024 (15 ES2023 (14) ES2022 (13) Object Objects ES2024 (15) ES2023 (14) ES2022 (13) Property Accessors ES2024 (15) ES2023 (14) ES2022 (13) Object Initializer ES2024 (15) ES2023 (14) ES2022 (13) Additional Properties of the Object.prototype Object ES2024 (15) ES2023 (14) ES2022 (13) Other Additional Features ES2024 (15) ES2023 (14) ES2022 (13)
コンストラクタ
構文 | 説明 |
---|---|
オブジェクトリテラル new Object ( [ value ] ) | コンストラクタ |
プロパティ 一覧
プロパティ | 説明 | |
---|---|---|
Object.prototype. | __proto__ | 内部プロトタイプ |
Object.prototype. | constructor | コンストラクタ定義 |
Object. | prototype | プロトタイプ |
参考 | 説明 | |
Object.prototype | [ @@toStringTag ] | タグ (ユーザ定義の判別可能) toString【文字列変換】で使用 |
メソッド 一覧
メソッド | 説明 | |
---|---|---|
Object. | assign ( target, ...sources ) | プロパティ コピー |
Object. | create ( O [, Properties] ) | 作成 |
Object. | defineProperties ( O, Properties ) | プロパティ定義 (複数) |
Object. | defineProperty ( O, P, Attributes ) | プロパティ定義 (単一) |
Object. | entries ( O ) | プロパティ配列取得 (キー・値) |
Object. | freeze ( O ) | プロパティ凍結 |
Object. | fromEntries ( iterable ) | オブジェクト生成 (イテラブル) |
Object. | getOwnPropertyDescriptor ( O, P ) | プロパティ記述子 取得 |
Object. | getOwnPropertyDescriptors ( O ) | 全プロパティ記述子 取得 |
Object. | getOwnPropertyNames ( O ) | プロパティ名 取得 |
Object. | getOwnPropertySymbols ( O ) | シンボル プロパティ 取得 |
Object. | getPrototypeOf ( O ) | プロトタイプ 取得 |
Object. | groupBy ( items, callbackfn ) | グループ分け |
Object.prototype. | hasOwn ( O, P ) | プロパティ有無 (省略形) |
Object.prototype. | hasOwnProperty ( V ) | プロパティ有無 |
Object. | is ( value1, value2 ) | 同一判定 |
Object. | isExtensible ( O ) | 拡張(プロパティ追加)可否 |
Object. | isFrozen ( O ) | プロパティ凍結 判定 |
Object.prototype. | isPrototypeOf ( V ) | プロトタイプチェーン存在有無 |
Object. | isSealed ( O ) | 封印 判定 |
Object. | keys (O) | プロパティ配列取得 (キー) |
Object. | preventExtensions (O) | 拡張(プロパティ追加)不可 設定 |
Object.prototype. | propertyIsEnumerable (V) | 列挙可能プロパティ 判定 |
Object. | seal ( O ) | 封印 |
Object. | setPrototypeOf ( O, proto ) | プロトタイプ設定 |
Object.prototype. | toLocaleString () toLocaleString ( [ reserved1 [ , reserved2 ] ] ) | 文字列変換 (ロケール) |
Object.prototype. | toString () | 文字列変換 ([ @@toStringTag ] プロパティ 参照) |
Object.prototype. | unwatch ( prop ) | 代入監視終了 |
Object.prototype. | valueOf () | プリミティブ値 変換 |
Object. | values ( O ) | プロパティ配列取得 (値) |
Object.prototype. | watch ( prop, handler ) | 代入監視開始 |
オブジェクトリテラル
{ [ prop1 [, prop2 [, … propN] ] [,] ] }
- prop1 ~ propN:プロパティ定義
詳細例:オブジェクトリテラル・new Object【コンストラクタ】の例プロパティ定義 例 説明 CoverInitializedName var xyz = 'xyz';
var obj = { xyz };CoverInitializedName:変数名
プロパティ名:変数名
プロパティ値:変数値PropName : Expression ・xyz : "xyz"
・func : function (~) { ~ }PropName:プロパティ名 (文字列に変換)
Expression:プロパティ値 (式)
NumericLiteral:数値 (文字列に変換)
[PropName]:文字列で記述・式も可能"PropName" : Expression "xyz" : "xyz" NumericLiteral : Expression 123 : "xyz" [PropName] : Expression ・[xyz] : "xyz"
・["xy" + "z"] : "xyz"PropName ( Parameters ) { FuncBody } func (~) { ~ } 関数定義の省略形
Parameters:パラメータ
FuncBody:処理GeneratorMethod ジェネレータ get PropName () { FuncBody } get xValue () { return this.x; } ゲッター
FuncBody:処理set PropName ( Parameters ) { FuncBody } set xValue (value) { this.x = value; } セッター
Parameters:パラメータ
FuncBody:処理
プロパティの変更・追加・削除 防止
設定 判定 | プロパティ操作 | strict モード エラー | ||
---|---|---|---|---|
変更 | 追加 | 削除 | ||
seal【封印】 isSealed【封印 判定】 | ● | × | × | TypeError 例外 |
freeze【プロパティ凍結】 isFrozen【プロパティ凍結 判定】 | × | × | × | TypeError 例外 |
preventExtensions【拡張(プロパティ追加)不可 設定】 isExtensible【拡張(プロパティ追加)可否】 | ● | × | ● | TypeError 例外 |