1. タイトルと制作年を渡す
  2. 別の作品でも同じ形になる
  3. 制作年を渡さないと year は 0 になる
  4. タイトルが空文字でもそのまま入る
コース一覧
JavaScript基礎文法:処理を組み立てる
オブジェクトのきほん

JavaScript基礎文法:処理を組み立てる

if・switch による条件分岐、配列とループ、関数とコールバック、オブジェクトを順に組み立てる全 33 レッスン(525 分)の基礎文法コースです。FizzBuzz、作品リスト、関数への整理、作品データの構造化を通して、入力から結果を返す処理を自分で分解して書きます。DOM 操作は次のコースで扱います。

1
条件分岐
01. if 文の基本15分
02. if / else if / else で段階判定15分
03. switch 文で値を一覧から選ぶ15分
04. 条件を組み合わせる20分
05. FizzBuzz で複数条件を組み立てる20分
06. つくる 時間帯で挨拶を変える20分
07. 第1章まとめクイズ10分
2
配列とループ
01. 配列のきほん15分
02. 要素を足す・取り除く15分
03. for ループで合計を求める15分
04. for-of で配列を走査する15分
05. while で条件を満たす間くり返す15分
06. break と continue でループを制御する15分
07. つくる 作品リストを一覧にする20分
08. 第2章まとめクイズ10分
3
関数
01. 関数宣言15分
02. アロー関数15分
03. デフォルト引数15分
04. 早期 return でネストを浅くする15分
05. 変数のスコープ15分
06. コールバック関数15分
07. forEach で配列をまわす15分
08. つくる 処理を関数に整理する20分
09. 第3章まとめクイズ10分
4
オブジェクト
01. オブジェクトのきほん18分
02. オブジェクトで複数の値を返す16分
03. const と参照18分
04. ?. で安全に取り出す16分
05. 分割代入18分
06. スプレッド構文18分
07. find と includes で探す16分
08. つくる 作品データを構造化する25分
09. 第4章まとめクイズ10分

オブジェクトのきほん

オブジェクトのキーと値
解説

このレッスンで分かること

  • {} にキーと値を並べると、ばらばらの情報をひとつの箱にまとめられます
  • 無いキーを読んでもエラーにならず undefined が返ります

配列を 3 本並べると、対応が静かに壊れる

第5章の配列は、同じ種類の値を順番に並べる道具でした。ところが実際のデータは、1 件につき複数の情報を持っています。スキルなら名前とレベル、作品なら題名と年です。配列だけで表そうとすると、こうなります。

JavaScript

const skillNames = ["HTML", "CSS", "JavaScript"]; const skillRanks = [3, 2, 1];

skillNames[1] と skillRanks[1] が同じスキルを指しているという保証は、どこにもありません。片方だけ並べ替えた瞬間に対応は壊れますが、プログラムはエラーを出しません。ただ間違った答えを返し続けます。

JavaScript

const skill = { name: "CSS", level: 2, learning: true };

これがオブジェクトです。ひとつのスキルに関する情報が、ひとつの {} に収まりました。{} の中はキーと値のペアをカンマ区切りで並べます。キーが名前、値が中身です。もう並び順を気にする必要はありません。

名前で読み、名前で書く

値を取り出す書き方は 2 通りあります。

JavaScript

const profile = { name: "山田 太郎", role: "Web エンジニアを目指しています" }; console.log(profile.name); // 山田 太郎 console.log(profile["role"]); // Web エンジニアを目指しています

ふだんは短いドット記法を使い、キー名が変数に入っているときだけブラケット記法にします。

場面ドット記法ブラケット記法
ふつうのキーprofile.nameprofile["name"]
キー名が変数書けないprofile[key]
記号を含むキー書けないprofile["updated-at"]

書き込みも同じ形です。無いキーに代入すれば追加、あるキーに代入すれば上書きになります。空の {} から始めて、キーを 1 つずつ足していく書き方もよく使います。

JavaScript

const owner = {}; owner.name = "山田 太郎"; owner.role = "Web エンジニアを目指しています"; console.log(owner); // { name: "山田 太郎", role: "Web エンジニアを目指しています" }

無いキーを読んでも止まらない

オブジェクトの性格をひとことで言うと「聞かれたものが無ければ undefined と答える」です。

JavaScript

console.log(profile.age); // undefined エラーにはならない console.log(skill.category === undefined); // true なら「無い」と分かる

親切な仕様である反面、つづりを間違えても黙って undefined が返るという弱点でもあります。そして関数の引数も、渡されなければ undefined になります。値が無い状態はどちらも undefined として現れる、という一点を押さえておくと、既定値を入れるかどうかの判定がそのまま書けます。

よくある間違い

  • キー名のつづり違いに気付かない — profile.nmae と書いてもエラーは出ず、undefined が返るだけです。undefined が出たら、まずつづりを疑ってください
  • 変数の中身でキーを引きたいのにドット記法を使う — profile.key は key という名前のキーを探しに行きます。変数に入った名前で読むなら profile[key] です

要件

  1. 関数名は createWork、引数は title と year の 2 つ
  2. 戻り値は title year published の 3 つのキーを持つオブジェクト
  3. year が渡されず undefined のときは 0 を入れること
  4. published は常に真偽値の false にすること

入出力例

createWork("プロフィールサイト", 2026) → {"published":false,"title":"プロフィールサイト","year":2026} createWork("自己紹介カード", 2026) → {"published":false,"title":"自己紹介カード","year":2026} createWork("スキル一覧の表") → {"published":false,"title":"スキル一覧の表","year":0} createWork("", 2026) → {"published":false,"title":"","year":2026}

ヒント

まず `const work = {};` と空のオブジェクトを作り、`work.title = title;` のように 1 つずつキーを足していきます

渡されなかった引数の中身は `undefined` になります。`year === undefined` で判定できます

`published` は文字列の `"false"` ではなく真偽値の `false` です。クォートで囲まないでください

生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/08/05·更新 2026/08/26

関連レッスン

  • オブジェクトで複数の値を返す

    return は値を 1 つしか返せません。関連する複数の値はオブジェクトに詰めてまとめて返します。

  • const と参照

    const が禁止しているのは再代入だけです。配列やオブジェクトの中身は変更できる理由を参照の仕組みから理解します。

  • ?. で安全に取り出す

    オプショナルチェーンは入れ子のオブジェクトを安全にたどる記号です。途中が無くてもエラーにならず undefined になります。

  • 分割代入

    オブジェクトや配列から必要な値をまとめて変数に取り出す書き方です。既定値や名前の付け替えもできます。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • 配列サイズ固定の同型データの集まり
  • オブジェクトキーと値のペアで構造を作るデータ
  • 変数データに名前をつけて参照する仕組み
  • 関数処理に名前を付けて再利用できる単位
  • 引数位置引数=順番で渡す。
  • 戻り値呼び出し元への返答を表す点線矢印
main.js
学習モード
エディタを読み込んでいます

メモ

オブジェクトのきほん

⌘S で保存