Skip to content

Commit b1eb219

Browse files
committed
index.mdをobjectブランチからコピー
1 parent ef5b733 commit b1eb219

File tree

1 file changed

+63
-8
lines changed

1 file changed

+63
-8
lines changed

docs/1-trial-session/11-object/index.md

Lines changed: 63 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,10 @@ JavaScript で扱うことのできる<Term type="javascriptValue">値</Term>の
1212

1313
<Term type="javascriptObject">オブジェクト</Term>を用いると、これまで扱ってきたような単純な<Term type="javascriptValue">値</Term>を複数まとめて一つの<Term type="javascriptValue">値</Term>として扱うことができます。
1414

15-
今まで扱ってきたような「それ以上分解できない」<Term type="javascriptValue">値</Term>のことを<Term strong type="javascriptPrimitive">プリミティブ</Term>といい、<Term type="javascriptPrimitive">プリミティブ</Term>でない値はすべて<Term type="javascriptObject">オブジェクト</Term>です。
1615

17-
![値の種類・オブジェクト付き](./value-types-with-object.drawio.svg)
18-
19-
:::tip ほかの言語の経験者へ
2016

21-
JavaScript の<Term type="javascriptObject">オブジェクト</Term>は、ほかの言語でいう**辞書****連想配列****Map** に近いものです。ただ、こういったものと比べ、JavaScript の<Term type="javascriptObject">オブジェクト</Term>は使用頻度が非常に高いです。
22-
23-
:::
2417

25-
## オブジェクトの作成
18+
## <Term type="javascriptObject">オブジェクト</Term>の作成
2619

2720
<Term type="javascriptObject">オブジェクト</Term>は、複数の<Term strong type="javascriptProperty" strong>プロパティ</Term>と呼ばれる<Term type="javascriptValue">値</Term>を持ちます。<Term type="javascriptProperty">プロパティ</Term>にはそれぞれ名前がついています。<Term type="javascriptProperty">プロパティ</Term>の名前には文字列しか指定できませんが、<Term type="javascriptProperty">プロパティ</Term>の<Term type="javascriptValue">値</Term>としては <Term type="javascript">JavaScript</Term> で使用できるすべての<Term type="javascriptValue">値</Term>が使用可能です。
2821

@@ -32,6 +25,12 @@ const person = { name: "田中", age: 18 };
3225

3326
![プロパティ](properties.png)
3427

28+
:::tip ほかの言語の経験者へ
29+
30+
JavaScript の<Term type="javascriptObject">オブジェクト</Term>は、ほかの言語でいう**辞書****連想配列****Map** に近いものです。ただ、こういったものと比べ、JavaScript の<Term type="javascriptObject">オブジェクト</Term>は使用頻度が非常に高いです。
31+
32+
:::
33+
3534
<p><Term type="javascriptObject">オブジェクト</Term>の中に<Term type="javascriptObject">オブジェクト</Term>を入れることもできます。</p>
3635

3736
```javascript
@@ -56,8 +55,64 @@ person.age += 1;
5655
document.write(person.age);
5756
```
5857

58+
:::tip プロパティの追加
59+
プロパティは取得や変更のほかに、追加もできます。
60+
61+
```javascript
62+
person.favoriteFood = "餃子";
63+
document.write(person.favoriteFood);
64+
// 餃子
65+
```
66+
67+
:::
68+
69+
:::note <Term type="javascriptObject">オブジェクト</Term>と「プリミティブ」
70+
71+
この章よりも前に扱ってきたような「それ以上分解できない」<Term type="javascriptValue">値</Term>のことを<Term strong type="javascriptPrimitive">プリミティブ</Term>といい、<Term type="javascriptPrimitive">プリミティブ</Term>でない値はすべて<Term type="javascriptObject">オブジェクト</Term>です。
72+
73+
![値の種類・オブジェクト付き](./value-types-with-object.drawio.svg)
74+
75+
:::
76+
5977
## 課題
6078

79+
### 初級課題
80+
81+
田中さんを表すオブジェクトを定義します。
82+
83+
```javascript
84+
const tanaka = {
85+
name: "田中",
86+
scores: { math: 90, science: 80 },
87+
};
88+
```
89+
90+
1. 田中さんの算数の点数を表示してみましょう。
91+
92+
2. `scores` に国語の点数を追加して、表示してみましょう。
93+
94+
<Answer title="成績表示">
95+
96+
```javascript title="1の解答"
97+
document.write(tanaka.scores.math);
98+
```
99+
100+
<ViewSource url={import.meta.url} path="_samples/viewMathScore" />
101+
102+
```javascript title="2の解答"
103+
tanaka.scores.japanese = 50;
104+
document.write(tanaka.scores.japanese);
105+
```
106+
107+
<ViewSource url={import.meta.url} path="_samples/editAndViewJapaneseScore" />
108+
109+
110+
2はプロパティの追加を利用しています。
111+
112+
</Answer>
113+
114+
### 中級課題
115+
61116
<p><Term type="javascriptObject">オブジェクト</Term>も<Term type="javascriptValue">値</Term>の一種なので、<Term type="javascriptFunction">関数</Term>の<Term type="javascriptParameter">引数</Term>や<Term type="javascriptReturnValue">戻り値</Term>として使用できます。</p>
62117

63118
`age` <Term type="javascriptProperty">プロパティ</Term>に 1 を加えた<Term type="javascriptObject">オブジェクト</Term>を返す関数 `incrementAge` を定義してみましょう。

0 commit comments

Comments
 (0)