概要
Objectは 組み込みのグローバルオブジェクト で、JavaScriptにおけるオブジェクト操作の基本を提供します。
Objectメソッドは、オブジェクトのキー(プロパティ名)や値の取得、コピー、マージ、凍結などを行うためのスタティックメソッドです。
つまり、
-
Objectメソッドは「オブジェクトの構造や情報を操作するための静的メソッド」 - 直接
Object.から呼び出す(インスタンスメソッドではない)
という特徴を持ちます。
目次
基本構文
JavaScript
// Objectメソッドの例
const user = { name: "Alice", age: 25 };
// すべてのキーを取得
console.log(Object.keys(user)); // ["name", "age"]
// すべての値を取得
console.log(Object.values(user)); // ["Alice", 25]
// キーと値をペアで取得
console.log(Object.entries(user)); // [["name", "Alice"], ["age", 25]]
- 対象: オブジェクト
- 戻り値: 配列(キー・値・エントリなど)
- 用途: オブジェクトの中身を配列形式で操作したいとき
Objectメソッドの種類
Object.keys
JavaScript
const person = { name: "Bob", age: 30 };
console.log(Object.keys(person));
// ["name", "age"]
- オブジェクトの キー名(プロパティ名) を配列で返す
- ループ処理に利用されることが多い
Object.values
JavaScript
const person = { name: "Bob", age: 30 };
console.log(Object.values(person));
// ["Bob", 30]
- オブジェクトの 値(プロパティ値) を配列で返す
- 値を一覧処理したいときに便利
Object.entries
JavaScript
const person = { name: "Bob", age: 30 };
console.log(Object.entries(person));
// [["name", "Bob"], ["age", 30]]
- オブジェクトを キーと値のペア配列 に変換する
-
Mapやfor...ofとの相性が良い
Object.assign
JavaScript
const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };
const merged = Object.assign(target, source);
console.log(merged); // { a: 1, b: 4, c: 5 }
- オブジェクトを コピー・結合 する
- 同じキーがあれば上書きされる
- 元のオブジェクト(
target)も変更される点に注意
Object.freeze
JavaScript
const user = { name: "Alice" };
Object.freeze(user);
user.name = "Bob"; // 無視される(変更不可)
console.log(user.name); // "Alice"
- オブジェクトを 凍結(変更不可) にする
- プロパティの追加・削除・変更ができなくなる
Object.hasOwn
JavaScript
const user = { name: "Alice" };
console.log(Object.hasOwn(user, "name")); // true
console.log(Object.hasOwn(user, "age")); // false
- 指定したキーがオブジェクト自身に存在するかどうかを確認する
- プロトタイプ継承されたキーは含まれない
比較結果
| メソッド | 戻り値 | 主な用途 | 元オブジェクトの変更 |
|---|---|---|---|
Object.keys |
キー配列 | プロパティ名一覧を取得 | なし |
Object.values |
値配列 | 値の一覧を取得 | なし |
Object.entries |
[key, value] 配列 |
ループ処理などに利用 | なし |
Object.assign |
結合済オブジェクト | コピー・マージ | あり(注意) |
Object.freeze |
凍結されたオブジェクト | データ保護 | 不可 |
Object.hasOwn |
真偽値 | キー存在確認 | なし |
活用例
1. オブジェクトのキーをループ処理
JavaScript
const user = { name: "Alice", age: 25, city: "Tokyo" };
Object.keys(user).forEach(key => {
console.log(`${key}: ${user[key]}`);
});
// 出力
// name: Alice
// age: 25
// city: Tokyo
2. entriesでMapに変換
JavaScript
const obj = { a: 1, b: 2, c: 3 };
const map = new Map(Object.entries(obj));
console.log(map.get("b")); // 2
3. 複数オブジェクトの結合
JavaScript
const base = { id: 1 };
const info = { name: "Alice" };
const status = { active: true };
const result = Object.assign({}, base, info, status);
console.log(result); // { id: 1, name: "Alice", active: true }
4. 凍結オブジェクトの安全利用
JavaScript
const config = Object.freeze({
apiUrl: "https://example.com",
timeout: 5000
});
// 変更しようとしても反映されない
config.apiUrl = "https://malicious.com";
console.log(config.apiUrl); // "https://example.com"