JS

オブジェクト

初級

読み方:オブジェクト|英語:Object

キーと値のペアでデータを管理する構造で、{ name: "田中", age: 15 } の形だよ。

やさしい説明

オブジェクトとは、関連するデータをまとめて管理するデータ構造です。「名前(キー)」と「値」のペア(プロパティ)で構成されます。

生徒の情報カードをイメージしてください。名前、年齢、クラス——1人の情報をまとめて1つのオブジェクトに入れます。

配列が「番号(インデックス)で管理」するのに対し、オブジェクトは「名前(キー)で管理」します。user.name のようにドットでアクセスします。

具体例・使い方

const user = {
  name: "太郎",
  age: 15,
  hobby: "ゲーム",
};

// プロパティへのアクセス(ドット記法)
console.log(user.name);  // "太郎"
console.log(user.age);   // 15

// ブラケット記法(キーが変数のとき)
const key = "name";
console.log(user[key]);  // "太郎"

// プロパティの追加・変更・削除
user.school = "○○中学校"; // 追加
user.age = 16;             // 変更
delete user.hobby;         // 削除

よく使うオブジェクトの操作

// 分割代入: プロパティを変数に取り出す
const { name, age } = user;
console.log(name); // "太郎"

// スプレッド構文: オブジェクトのコピー・マージ
const updated = { ...user, age: 17 }; // ageだけ上書き

// Object.keys / values / entries
const keys = Object.keys(user);    // ["name", "age"]
const vals = Object.values(user);  // ["太郎", 16]
Object.entries(user).forEach(([k, v]) => {
  console.log(k, v); // name 太郎 / age 16 ...
});

// オブジェクトの配列(APIレスポンスによく見られる)
const students = [
  { name: "太郎", score: 85 },
  { name: "花子", score: 92 },
];
students.filter(s => s.score >= 90); // [花子]

分割代入(const { name, age } = user)は実務で頻繁に使われます。関数の引数やAPIレスポンスの処理で特によく見かけます。

いつ使う?

  • ユーザー情報(名前・メール・権限)をまとめるとき
  • APIのレスポンスデータを扱うとき(多くはオブジェクト形式)
  • 設定値や定数をグループ化するとき
  • フォームの入力値をまとめて管理するとき

間違いやすいポイント

❌ 存在しないプロパティにアクセスしてもエラーにならない

存在しないキーにアクセスすると undefined が返ります。エラーにならないのでタイポに気づきにくいです。オプショナルチェーン(user?.email)を活用しましょう。

const user = { name: "太郎" };
user.email;       // undefined(エラーにならない!)
user.email.trim() // ❌ TypeError(undefinedのメソッドは呼べない)

// ✅ オプショナルチェーンで安全にアクセス
user?.email?.trim(); // undefined(エラーにならない)

❌ オブジェクトのコピーで参照が共有される

const b = a はオブジェクトのコピーではなく、同じオブジェクトへの参照です。独立したコピーを作るには { ...a }(スプレッド構文)を使いましょう。

よくある疑問

Q: 配列とオブジェクトの違いは?

A: 配列は「順番」で管理(インデックス)、オブジェクトは「名前」で管理(キー)します。順番が大事ならArray、名前で取り出したいならObjectです。

Q: オブジェクトにプロパティを追加するには?

A: obj.newKey = 値; で追加できます。削除は delete obj.key; です。

Q: オブジェクトの中身を全部見るには?

A: console.log(obj) で確認できます。Object.keys(obj) でキー一覧、Object.values(obj) で値一覧が取得できます。

関連用語

  • 配列 — 番号(インデックス)でデータを管理するデータ構造
  • 変数 — オブジェクトを格納する入れ物
  • — オブジェクトはJavaScriptの参照型の一つ

📖 関連レッスン

レッスンを見る →

関連ブログ記事

⚠️ 関連するエラー

❓ 関連するQ&A