JavaScriptのオブジェクト:プロパティ名で値を管理する

配列に続いて、「オブジェクト」を学びました。オブジェクトは配列と同様に複数のデータをまとめて管理しますが、プロパティ名(名前)を付けて管理する点が特徴です。

オブジェクトとは

オブジェクトは、複数のデータを、プロパティ名と値のペアでまとめて管理するデータ型です。

構文: {プロパティ名1: 値1, プロパティ名2: 値2, ...}

const user = {
  name: "太郎",
  age: 25,
  city: "Tokyo"
};

console.log(user);
// {name: "太郎", age: 25, city: "Tokyo"}

波括弧 {} で囲み、プロパティ名: 値 の形式で定義します。

配列とオブジェクトの違い

配列(インデックス番号で管理)

const user = ["太郎", 25, "Tokyo"];

console.log(user[0]);  // 太郎
console.log(user[1]);  // 25
console.log(user[2]);  // Tokyo

配列は、インデックス番号で要素を取り出します。

オブジェクト(プロパティ名で管理)

const user = {
  name: "太郎",
  age: 25,
  city: "Tokyo"
};

console.log(user.name);  // 太郎
console.log(user.age);   // 25
console.log(user.city);  // Tokyo

オブジェクトは、プロパティ名で値を取り出します。

オブジェクトの値を取り出す

構文: オブジェクト.プロパティ名

const product = {
  name: "ノートPC",
  price: 120000,
  stock: 5
};

console.log(product.name);   // ノートPC
console.log(product.price);  // 120000

.(ドット)の後にプロパティ名を書くことで、値を取り出せます。

オブジェクトの値を更新する

オブジェクトの値も、後から変更できます

構文: オブジェクト.プロパティ名 = 新しい値

const product = {
  name: "ノートPC",
  price: 120000,
  stock: 5
};

// 在庫数を更新
product.stock = 3;

console.log(product.stock);  // 3

存在しないプロパティにアクセスすると?

存在しないプロパティにアクセスすると、undefined が返されます。

const user = {
  name: "太郎",
  age: 25
};

console.log(user.email);  // undefined

undefined は、「値が定義されていない」という意味です。

undefinedが表示される理由

以下の2つの場合に undefined が表示されます:

  1. 存在しないプロパティにアクセスした
  2. 存在しないインデックス番号にアクセスした(配列の場合)
const fruits = ["りんご", "バナナ"];
console.log(fruits[5]);  // undefined(5番目の要素は存在しない)

const user = {name: "太郎"};
console.log(user.age);  // undefined(ageプロパティは存在しない)

配列とオブジェクトの使い分け

配列が適している場合

  • 同じ種類のデータをまとめる
  • 順番が重要
  • 繰り返し処理で全要素を扱う
// 果物のリスト(同じ種類のデータ)
const fruits = ["りんご", "バナナ", "オレンジ"];

オブジェクトが適している場合

  • 異なる種類のデータをまとめる
  • データに意味を持たせたい
  • プロパティ名で直接アクセスしたい
// ユーザー情報(異なる種類のデータ)
const user = {
  name: "太郎",
  age: 25,
  email: "taro@example.com"
};

気をつけたいこと:変数や定数の宣言を忘れない

JavaScriptでは、変数や定数を使うとき、必ず letconst で宣言する必要があります。

// ❌ 宣言を忘れるとエラー
user = {name: "太郎", age: 25};

// ✅ 正しい
const user = {name: "太郎", age: 25};

Pythonでは宣言が不要でしたが、JavaScriptでは必須です。

Pythonの辞書との比較

JavaScriptのオブジェクトは、Pythonの辞書(dictionary)に相当します。

# Python(辞書)
user = {"name": "太郎", "age": 25}
print(user["name"])  # 太郎
// JavaScript(オブジェクト)
const user = {name: "太郎", age: 25};
console.log(user.name);  // 太郎

主な違い

項目PythonJavaScript
定義{"キー": 値}{キー: 値}
アクセス辞書["キー"]オブジェクト.キー
キーの囲み必須(""不要

JavaScriptでは、プロパティ名を""で囲まなくても良い点が便利です。

今日の学びのポイント

  • オブジェクト: {プロパティ名: 値} で定義
  • オブジェクト.プロパティ名 で値を取り出す
  • オブジェクト.プロパティ名 = 新しい値 で更新
  • 存在しないプロパティは undefined
  • 使い分け: 同じ種類のデータ → 配列、異なる種類 → オブジェクト
  • JavaScriptでは変数・定数の宣言が必須(Pythonとの違い)

オブジェクトは、複雑なデータを扱うときに欠かせないデータ構造です。次は、処理をまとめる「関数」を学びます。

コメント