@@ -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;
5655document .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