オブジェクト
公開日: 2025/06/02
オブジェクトとは?データと構造をまとめて管理する基本概念
はじめに
プログラミングで「ひとまとまりの情報」を扱いたい場面は非常に多くあります。たとえば、ユーザーの名前・年齢・性別などを1つの変数に格納したい時に便利なのが「オブジェクト」です。この記事では、オブジェクトの定義、使い方、配列や連想配列との違い、応用的な使い方について解説します。
基本情報・概要
オブジェクト(object)とは、キーと値のペアで構成されたデータ構造です。複数の関連情報をひとまとめにすることができ、JavaScriptにおける最も重要な構造の1つです。
const user = { name: "Taro", age: 25, isAdmin: true }; console.log(user.name); // "Taro" console.log(user["age"]); // 25
はオブジェクトuser
,name
,age
は「キー」isAdmin
,"Taro"
,25
は「値」true
比較・分類・特徴の表形式まとめ
特徴項目 | 内容 |
---|---|
構成 | キーと値のペア(プロパティ) |
アクセス方法 | ドット記法、ブラケット記法 |
柔軟性 | 動的にプロパティの追加・削除が可能 |
ネスト構造 | オブジェクトの中にオブジェクトを持てる |
用途 | 複雑なデータ構造の管理、連想配列としての利用も可能 |
深掘り解説
オブジェクトのプロパティ操作
-
追加
user.gender = "male";
-
変更
user.age = 30;
-
削除
delete user.isAdmin;
ネスト構造と多段アクセス
const company = { name: "Acme Inc.", location: { city: "Tokyo", zip: "100-0001" } }; console.log(company.location.city); // "Tokyo"
メソッド(関数付きプロパティ)
オブジェクトには関数をプロパティとして持たせることもできます。
const dog = { name: "Pochi", bark: function() { console.log("ワン!"); } }; dog.bark(); // "ワン!"
thisの扱い
オブジェクト内メソッドで
this
を使うと、そのオブジェクト自身を指します。
const user = { name: "Taro", greet() { return "Hello, " + this.name; } }; console.log(user.greet()); // "Hello, Taro"
応用・発展的な使い方
Object.keys / Object.values / Object.entries
const user = { name: "Taro", age: 25 }; Object.keys(user); // ["name", "age"] Object.values(user); // ["Taro", 25] Object.entries(user); // [["name", "Taro"], ["age", 25]]
スプレッド構文でのコピー
const original = { a: 1, b: 2 }; const copy = { ...original, b: 3 }; console.log(copy); // { a: 1, b: 3 }
Object.assign によるマージ
const merged = Object.assign({}, obj1, obj2);
クラスベースのオブジェクト生成
class User { constructor(name, age) { this.name = name; this.age = age; } } const u = new User("Taro", 30);
よくある誤解と注意点
-
オブジェクトと配列は異なる構造(配列は数値キー、オブジェクトは文字列キー)
-
で列挙すると prototype まで含まれる →for...in
推奨hasOwnProperty
-
オブジェクトの比較は「参照比較」になるため注意(
は false になることが多い)a === b
const a = { x: 1 }; const b = { x: 1 }; console.log(a === b); // false
まとめ
オブジェクトはあらゆるプログラミングの基礎構造であり、情報を整理・管理するうえで不可欠です。キーと値の構造を理解し、柔軟に操作できるようになることで、より複雑なロジックやデータ処理も扱えるようになります。まずは基本の使い方から慣れ、メソッドやネスト、クラスなどにもステップアップしていきましょう。