カテゴリ: JavaScript 更新日: 2026/06/20

JavaScriptのオブジェクト分割代入を初心者向けに完全解説!使い方と便利な活用法

JavaScriptのオブジェクトの分割代入の基本と活用法
JavaScriptのオブジェクトの分割代入の基本と活用法

先生と生徒の会話形式で理解しよう

生徒

「先生、JavaScriptでオブジェクトから必要な値だけ取り出す方法ってありますか?」

先生

「はい、それにはオブジェクトの分割代入という便利な構文を使います。これを使うと、オブジェクトの中の特定のプロパティだけを簡単に変数に取り出すことができます。」

生徒

「具体的にどのように書くんですか?」

先生

「それでは、基本から応用まで順番に見ていきましょう!」

1. オブジェクト分割代入とは?

1. オブジェクト分割代入とは?
1. オブジェクト分割代入とは?

オブジェクト分割代入(Destructuring Assignment)は、JavaScriptでオブジェクトの特定のプロパティを簡単に変数として取り出せる構文です。従来は下記のように書いていました。


const person = { name: "太郎", age: 20, city: "東京" };
const name = person.name;
const age = person.age;
console.log(name, age); // 太郎 20

しかし分割代入を使うと、もっとシンプルに書けます。


const person = { name: "太郎", age: 20, city: "東京" };
const { name, age } = person;
console.log(name, age); // 太郎 20

このようにオブジェクトの中から必要な値だけを取り出すことができ、コードが見やすくなります。

2. 分割代入で別名をつける方法

2. 分割代入で別名をつける方法
2. 分割代入で別名をつける方法

時には変数名をオブジェクトのプロパティ名と違う名前にしたい場合があります。そのときはコロンを使って別名を指定できます。


const person = { name: "花子", age: 25, city: "大阪" };
const { name: userName, age: userAge } = person;
console.log(userName, userAge); // 花子 25

これにより、コード内で変数名を自由に設定でき、他の部分と衝突することを避けられます。

3. デフォルト値を設定する方法

3. デフォルト値を設定する方法
3. デフォルト値を設定する方法

オブジェクトに指定したプロパティが存在しない場合、分割代入でデフォルト値を設定できます。


const person = { name: "次郎", age: 30 };
const { name, city = "未設定" } = person;
console.log(name, city); // 次郎 未設定

このように、存在しないプロパティでも安全に変数を作ることが可能です。

4. ネストしたオブジェクトの分割代入

4. ネストしたオブジェクトの分割代入
4. ネストしたオブジェクトの分割代入

オブジェクトの中にオブジェクトがある場合も、分割代入で簡単に取り出せます。


const person = { 
  name: "三郎", 
  address: { city: "名古屋", zip: "460-0000" } 
};
const { name, address: { city, zip } } = person;
console.log(name, city, zip); // 三郎 名古屋 460-0000

ネスト構造でも分かりやすく変数に代入できるのが分割代入の便利なポイントです。

5. 関数の引数での分割代入活用

5. 関数の引数での分割代入活用
5. 関数の引数での分割代入活用

関数にオブジェクトを渡すとき、引数で直接分割代入を使うことができます。


function greet({ name, age }) {
  console.log(`${name}さんは${age}歳です`);
}
const person = { name: "四郎", age: 28, city: "札幌" };
greet(person); // 四郎さんは28歳です

これにより、関数内でperson.nameのように書かずに済み、可読性が高まります。

6. 分割代入とスプレッド構文の組み合わせ

6. 分割代入とスプレッド構文の組み合わせ
6. 分割代入とスプレッド構文の組み合わせ

分割代入はスプレッド構文と組み合わせることもできます。オブジェクトの一部を取り出し、残りを別のオブジェクトにまとめることが可能です。


const person = { name: "五郎", age: 35, city: "福岡" };
const { name, ...rest } = person;
console.log(name); // 五郎
console.log(rest); // { age: 35, city: '福岡' }

スプレッド構文を使うことで、不要なプロパティを除外した新しいオブジェクトを作ることもできます。

7. 分割代入での応用パターン

7. 分割代入での応用パターン
7. 分割代入での応用パターン

分割代入は配列と組み合わせて、さらに便利に使うこともできます。例えば、配列内にオブジェクトがある場合、ネストして分割代入できます。


const data = [
  { id: 1, name: "六郎" },
  { id: 2, name: "七郎" }
];
const [{ name: firstName }, { name: secondName }] = data;
console.log(firstName, secondName); // 六郎 七郎

このように、複雑なデータ構造でも直感的に必要な値を取り出すことが可能です。

8. 分割代入を使ったコードのメリット

8. 分割代入を使ったコードのメリット
8. 分割代入を使ったコードのメリット

分割代入を使うメリットは以下の通りです。

  • コードがシンプルで読みやすくなる
  • 不要な変数アクセスを減らせる
  • 関数の引数で直接値を取り出せる
  • ネスト構造のデータでも整理して扱える

これらのメリットにより、大規模なJavaScriptアプリケーションでも可読性と保守性が向上します。

まとめ

まとめ
まとめ

今回の記事では、JavaScriptにおけるオブジェクト分割代入の基本から応用まで幅広く解説しました。オブジェクト分割代入は、オブジェクトの中から必要なプロパティだけを簡単に取り出すための非常に便利な構文であり、コードの可読性や保守性を大きく向上させます。従来の方法ではオブジェクトのプロパティにアクセスするために繰り返し記述が必要でしたが、分割代入を使うことで、変数宣言と同時に値を取得でき、コードが簡潔になります。また、プロパティ名を別名に変更したり、存在しないプロパティにデフォルト値を設定することも可能です。ネストしたオブジェクトや配列の中のオブジェクトに対しても、分割代入を用いることで直感的に必要なデータを取り出すことができます。さらに、関数の引数で直接分割代入を行うことで、関数内でオブジェクトのプロパティを逐一参照する必要がなくなり、より読みやすいコードを書くことができます。分割代入はスプレッド構文と組み合わせることで、不要なプロパティを除外したり、残りの値を別オブジェクトとしてまとめるなど、柔軟なデータ操作が可能です。このように、オブジェクト分割代入を理解し活用することで、JavaScriptのコーディングが効率化され、特に大規模なアプリケーション開発において非常に役立ちます。

サンプルプログラムで復習

 const user = { name: "八郎", age: 40, city: "京都", profession: "エンジニア" };
// 基本の分割代入
const { name, age } = user;
console.log(name, age); // 八郎 40

// 別名をつける
const { city: location, profession } = user;
console.log(location, profession); // 京都 エンジニア

// デフォルト値の設定
const { nickname = "名無し" } = user;
console.log(nickname); // 名無し

// ネストしたオブジェクト
const profile = { personal: { hobby: "読書", language: "JavaScript" } };
const { personal: { hobby, language } } = profile;
console.log(hobby, language); // 読書 JavaScript

// 関数引数での分割代入
function introduce({ name, age }) {
console.log(${name}さんは${age}歳です);
}
introduce(user); // 八郎さんは40歳です

// スプレッド構文との組み合わせ
const { name: userName, ...others } = user;
console.log(userName); // 八郎
console.log(others); // { age: 40, city: '京都', profession: 'エンジニア' }
先生と生徒の振り返り会話

生徒

「先生、オブジェクト分割代入って本当に便利ですね。コードが短くなるだけでなく、どの変数がどの値を持っているかもすぐわかります。」

先生

「そうですね。特に大きなオブジェクトや複雑なデータ構造を扱うときに、分割代入を使うと可読性と保守性が格段に向上します。」

生徒

「関数の引数でも使えるんですよね?これを使うと、関数の中でオブジェクト名を繰り返し書かなくて済むので、すごく便利です。」

先生

「その通りです。さらにスプレッド構文と組み合わせれば、必要なプロパティだけを抽出して残りを別のオブジェクトにまとめることもできます。これでオブジェクト操作がさらに柔軟になります。」

生徒

「なるほど、デフォルト値も設定できるから、値が存在しない場合も安心ですね。もう、分割代入なしにはJavaScriptを書けなくなりそうです。」

先生

「そう感じてもらえてうれしいです。基本をしっかり理解して、応用パターンにも挑戦してみてください。オブジェクト分割代入を自在に使いこなせれば、あなたのJavaScriptスキルは確実に向上します。」

カテゴリの一覧へ
新着記事
New1
JavaScript
JavaScriptのスコープとは?ローカル変数・グローバル変数の違いと使い分け
New2
TypeScript
TypeScriptで型の合成時に発生する型エラーの対処法を徹底解説!初心者にもわかりやすく解説
New3
TypeScript
TypeScriptでAPI呼び出しをラップするユーティリティ関数の設計完全ガイド!初心者向けにAxiosやFetchの使い方を解説
New4
TypeScript
TypeScriptのMapped Typesとインターフェースの連携方法を徹底解説!初心者でも理解できる型変換の基本
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのループで無限ループが起きる原因と対策を初心者向けに徹底解説!
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptの文字列の長さを取得する(lengthプロパティ)
No.4
Java&Spring記事人気No4
TypeScript
TypeScriptのファイル分割とimport/exportの基本を徹底解説!初心者でも安心のやさしい入門
No.5
Java&Spring記事人気No5
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.6
Java&Spring記事人気No6
TypeScript
TypeScriptでパスエイリアスを設定する方法!baseUrlとpathsでコードをスッキリ整理
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptでクエリパラメータを取得する方法を完全解説 URLSearchParamsの使い方を初心者向けに丁寧に説明
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptのプリミティブ型と参照型の違いを初心者向けに解説