@@ -10,50 +10,58 @@ JavaScript で扱うことのできる<Term type="javascriptValue">値</Term>の
1010
1111オブジェクトを用いると、これまで扱ってきたような単純な<Term type =" javascriptValue " >値</Term >を複数まとめて一つの<Term type =" javascriptValue " >値</Term >として扱うことができます。
1212
13- ![ 値の種類・論理値付き ] ( ./value-types-with-object.drawio.svg )
13+ 今まで扱ってきたような「それ以上分解できない」< Term type = " javascriptValue " >値</ Term >のことを< Term strong type = " javascriptPrimitive " >プリミティブ</ Term >といい、< Term type = " javascriptPrimitive " >プリミティブ</ Term >でない値はすべて< Term type = " javascriptObject " >オブジェクト</ Term >です。
1414
15- ## 論理< Term type = " javascriptOperator " >演算子</ Term >
15+ ![ 値の種類・オブジェクト付き ] ( ./value-types-with-object.drawio.svg )
1616
17- <p ><Term type =" javascriptBoolean " >論理値</Term >に対して適用できる<Term type =" javascriptOperator " >演算子</Term >が存在します。</p >
17+ :::tip ほかの言語の経験者へ
18+ JavaScript のオブジェクトは、ほかの言語でいう** 辞書** や** 連想配列** 、** Map** に近いものです。ただ、こういったものと比べ、JavaScript のオブジェクトは使用頻度が非常に高いです。
19+ :::
20+
21+ ## オブジェクトの作成
22+
23+ オブジェクトは、複数の<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 >が使用可能です。
1824
1925``` javascript
20- let isMonsterBig = true ;
21- let isMonsterSmall = ! true ; // false
22- let isHunterStrong = false ;
23- let shouldEscape = ! isHunterStrong && isMonsterBig; // true
24- let shouldFight = isHunterStrong || isMonsterSmall; // false
26+ let person = { name: " 田中" , age: 18 };
2527```
2628
27- 詳細は以下の通りです。 ` ! ` のみが作用する対象を 1 つしかとらないことに注意してください。
29+ ![ プロパティ] ( properties.png )
30+
31+ <p ><Term type =" javascriptObject " >オブジェクト</Term >の中に<Term type =" javascriptObject " >オブジェクト</Term >を入れることもできます。</p >
32+
33+ ``` javascript
34+ let person = {
35+ name: " 田中" ,
36+ scores: { math: 80 , science: 90 },
37+ };
38+ ```
2839
29- | 演算子 | 意味 | 詳細 |
30- | ------------------------- | ---------- | -------------------------------------------------------------------- |
31- | ` ! ` | ~ではない | ` true ` ならば ` false ` 、` false ` ならば ` true ` |
32- | ` && ` | かつ | 両方 ` true ` ならば ` true ` 、どちらか 1 つでも ` false ` ならば ` false ` |
33- | <code >| ;| ; </code > | または | 両方 ` false ` ならば ` false ` 、どちらか 1 つでも ` true ` ならば ` true ` |
40+ ::: note
41+ <p ><Term type =" javascriptObject " >オブジェクト</Term >の<Term type =" javascriptProperty " >プロパティ</Term >は、<Term type =" css " >CSS</Term > における<Term type =" cssProperty " >プロパティ</Term >と似ているものの、全く異なるものです。文脈により何を意味しているのかが変わるので注意してください。</p >
42+ :::
3443
35- ## 比較 <Term type =" javascriptOperator " >演算子 </Term >
44+ ## <Term type =" javascriptObject " >オブジェクト </Term >の< Term type = " javascriptProperty " >プロパティ</ Term >を取得・変更する
3645
37- 比較 <Term type =" javascriptOperator " >演算子 </Term >は、複数の <Term type =" javascriptValue " >値 </Term >を比較して、単一の <Term type =" javascriptBoolean " >論理値 </Term >を得ます 。
46+ ドット記号を用いることで、 <Term type =" javascriptObject " >オブジェクト </Term >の <Term type =" javascriptProperty " >プロパティ </Term >を取得・変更できます。通常の <Term type =" javascriptVariable " >変数 </Term >のように扱えます 。
3847
3948``` javascript
40- let age = 15 ;
41- let height = 155 ;
42- let isFourteen = age === 14 ; // false
43- let isNotFourteen = age !== 14 ; // true
44- let isChild = age < 20 ; // true
45- let canRideRollerCoasters = age >= 10 && height >= 140 ; // true
49+ person .age = person .age + 1 ;
50+ document .write (person .age );
4651```
4752
48- 各<Term type =" javascriptOperator " >演算子</Term >の詳細は、次の通りです。
53+ ## 課題
54+
55+ <p ><Term type =" javascriptObject " >オブジェクト</Term >も<Term type =" javascriptValue " >値</Term >の一種なので、<Term type =" javascriptFunction " >関数</Term >の<Term type =" javascriptParameter " >引数</Term >や<Term type =" javascriptReturnValue " >戻り値</Term >として使用できます。</p >
4956
50- | 演算子 | 意味 | 詳細 |
51- | ------ | ---------- | ------------------------------- |
52- | ` === ` | 等しい | |
53- | ` !== ` | 等しくない | |
54- | ` < ` | 小なり | 左辺が右辺より小さければ ` true ` |
55- | ` <= ` | 以下 | 左辺が右辺より以下ならば ` true ` |
56- | ` > ` | 大なり | 左辺が右辺より大きければ ` true ` |
57- | ` >= ` | 以上 | 左辺が右辺より以上ならば ` true ` |
57+ ` age ` <Term type =" javascriptProperty " >プロパティ</Term > 1 を加えた<Term type =" javascriptObject " >オブジェクト</Term >を返す関数 ` incrementAge ` を定義してみましょう。
5858
59- ` && ` や ` || ` よりも比較<Term type =" javascriptOperator " >演算子</Term >の方が<Term type =" javascriptOperatorPriority " >優先順位</Term >が高いため、最後の例のように複数の条件を「かつ」「または」などで組み合わせることは容易です。
59+ ``` javascript
60+ function incrementAge (person ) {
61+ // ここに書く
62+ };
63+
64+ let tanaka = { name: " 田中" , age: 18 };
65+ let nextYearTanaka = incrementAge (tanaka);
66+ document .write (nextYearTanaka .age ); // 19 と表示されてほしい
67+ ```
0 commit comments