diff --git a/docs/1-trial-session/11-object/_samples/add-and-view-Japanese-score/index.html b/docs/1-trial-session/11-object/_samples/add-and-view-Japanese-score/index.html
new file mode 100644
index 000000000..df19d1882
--- /dev/null
+++ b/docs/1-trial-session/11-object/_samples/add-and-view-Japanese-score/index.html
@@ -0,0 +1,10 @@
+
+
+
+
+ Title
+
+
+
+
+
diff --git a/docs/1-trial-session/11-object/_samples/add-and-view-Japanese-score/script.js b/docs/1-trial-session/11-object/_samples/add-and-view-Japanese-score/script.js
new file mode 100644
index 000000000..710607a83
--- /dev/null
+++ b/docs/1-trial-session/11-object/_samples/add-and-view-Japanese-score/script.js
@@ -0,0 +1,6 @@
+const tanaka = {
+ name: "田中",
+ scores: { math: 90, science: 80 },
+};
+tanaka.scores.japanese = 50;
+document.write(tanaka.scores.japanese);
diff --git a/docs/1-trial-session/11-object/_samples/view-math-score/index.html b/docs/1-trial-session/11-object/_samples/view-math-score/index.html
new file mode 100644
index 000000000..df19d1882
--- /dev/null
+++ b/docs/1-trial-session/11-object/_samples/view-math-score/index.html
@@ -0,0 +1,10 @@
+
+
+
+
+ Title
+
+
+
+
+
diff --git a/docs/1-trial-session/11-object/_samples/view-math-score/script.js b/docs/1-trial-session/11-object/_samples/view-math-score/script.js
new file mode 100644
index 000000000..d094e79a9
--- /dev/null
+++ b/docs/1-trial-session/11-object/_samples/view-math-score/script.js
@@ -0,0 +1,5 @@
+const tanaka = {
+ name: "田中",
+ scores: { math: 90, science: 80 },
+};
+document.write(tanaka.scores.math);
diff --git a/docs/1-trial-session/11-object/array-properties.png b/docs/1-trial-session/11-object/array-properties.png
new file mode 100644
index 000000000..b494977a3
Binary files /dev/null and b/docs/1-trial-session/11-object/array-properties.png differ
diff --git a/docs/1-trial-session/11-object/index.md b/docs/1-trial-session/11-object/index.md
index 0d91faf2e..de6db6b2f 100644
--- a/docs/1-trial-session/11-object/index.md
+++ b/docs/1-trial-session/11-object/index.md
@@ -10,21 +10,11 @@ import ViewSource from "@site/src/components/ViewSource";
JavaScript で扱うことのできる値の種類として、これまで数値、文字列、論理値を扱ってきました。オブジェクトもまた、JavaScript の値ですが、今まで扱ってきた値とは少し性質が異なります。
-オブジェクトを用いると、これまで扱ってきたような単純な値を複数まとめて一つの値として扱うことができます。
+オブジェクトを用いると、これまで扱ってきたような単純な値を複数まとめて一つの値として扱うことができます。
-今まで扱ってきたような「それ以上分解できない」値のことをプリミティブといい、プリミティブでない値はすべてオブジェクトです。
+## オブジェクトの作成
-
-
-:::tip ほかの言語の経験者へ
-
-JavaScript のオブジェクトは、ほかの言語でいう**辞書**や**連想配列**、**Map** に近いものです。ただ、こういったものと比べ、JavaScript のオブジェクトは使用頻度が非常に高いです。
-
-:::
-
-## オブジェクトの作成
-
-オブジェクトは、複数のプロパティと呼ばれる値を持ちます。プロパティにはそれぞれ名前がついています。プロパティの名前には文字列しか指定できませんが、プロパティの値としては JavaScript で使用できるすべての値が使用可能です。
+オブジェクトは、複数のプロパティと呼ばれる値を持ちます。プロパティにはそれぞれ名前がついています。プロパティの名前には文字列しか指定できませんが、プロパティの値としては JavaScript で使用できるすべての値が使用可能です。
```javascript
const person = { name: "田中", age: 18 };
@@ -32,6 +22,12 @@ const person = { name: "田中", age: 18 };

+:::tip ほかの言語の経験者へ
+
+JavaScript のオブジェクトは、ほかの言語でいう**辞書**や**連想配列**、**Map** に近いものです。ただ、こういったものと比べ、JavaScript のオブジェクトは使用頻度が非常に高いです。
+
+:::
+
オブジェクトの中にオブジェクトを入れることもできます。
```javascript
@@ -56,8 +52,91 @@ person.age += 1;
document.write(person.age);
```
+:::tip プロパティの追加
+プロパティは取得や変更のほかに、追加もできます。
+
+```javascript
+person.favoriteFood = "餃子";
+document.write(person.favoriteFood); // 餃子
+```
+
+:::
+
+:::note オブジェクトとプリミティブ
+
+この章よりも前に扱ってきたような「それ以上分解できない」値のことをプリミティブといい、プリミティブでない値はすべてオブジェクトです。
+
+
+
+:::
+
+## 配列とオブジェクト
+
+上で説明したように、配列はプリミティブではないのでオブジェクトの一種です。JavaScript のオブジェクトとは、プロパティ名とプロパティ値の組の集合でした。
+
+配列もこの原則に従って動作しています。次の図に示すように、配列とは、各要素のインデックスがプロパティ名になっているオブジェクトだと考えることができるのです。
+
+
+
+逆に、オブジェクトも配列と同じように使用することができます。この記法を**ブラケット記法**と呼び、プログラムの動作に応じて使用したいプロパティを切り替えるのに役立ちます。
+
+```javascript
+const subject = "math"; // ここを変えると表示される教科が変わる
+const scores = { math: 90, science: 80 };
+document.write(`${subject} の点数は ${scores[subject]} です。`); // math の点数は 90 です。
+```
+
+:::tip オブジェクトのプロパティ名
+
+オブジェクトのプロパティ名に数値は使用できません。それではなぜ、配列の場合は `studentNames[2]` のように記述できるのでしょうか。
+
+答えは単純で、文字列に変換されているからです。このため、次のプログラムは全く問題なく動作します。
+
+```javascript
+const studentNames = ["田中", "佐藤", "鈴木"];
+document.write(studentNames["0"]); // 田中
+```
+
+:::
+
## 課題
+### 初級課題
+
+田中さんを表すオブジェクトを定義します。
+
+```javascript
+const tanaka = {
+ name: "田中",
+ scores: { math: 90, science: 80 },
+};
+```
+
+1. 田中さんの算数の点数を表示してみましょう。
+
+2. `scores` に国語の点数を追加して、表示してみましょう。
+
+
+
+```javascript title="1の解答"
+document.write(tanaka.scores.math);
+```
+
+
+
+```javascript title="2の解答"
+tanaka.scores.japanese = 50;
+document.write(tanaka.scores.japanese);
+```
+
+
+
+2では、プロパティを自分で追加しています。
+
+
+
+### 中級課題
+
オブジェクトも値の一種なので、関数の引数や戻り値として使用できます。
`age` プロパティに 1 を加えたオブジェクトを返す関数 `incrementAge` を定義してみましょう。