回答編集履歴

3

値に焦点を絞って全面的に変更

2016/05/04 07:43

投稿

flat
flat

スコア617

test CHANGED
@@ -1,57 +1,189 @@
1
- ###0は値に0という数値が存在していることを表
1
+ ###あら
2
2
 
3
3
 
4
4
 
5
- 電卓で計算して計算結果の値が0だっとき、ディスプレイにはそまま0が表示れます
5
+ JavaScript最近学び始め見習いエンジニア山田
6
6
 
7
- JavaScriptも同じように、値が0だったときはそまま0返します。
7
+ 今日仕事終えて帰宅る途中の山田さんは買い物をするために近所のスーパーへ向かうようです
8
8
 
9
9
 
10
10
 
11
- つまり田中君、今月の君の営業成績は?成約はくつ取れたのかね?」いう問いに対して「……0で。成約はひとつも取れませんでし……という返事が返ってきたわけです。
11
+ ###第一章null - 値に内容が無を明示めの宣言
12
12
 
13
13
 
14
14
 
15
- また「0」の必要性は語るまでもないかもしれませんが、配列の要素の位置などは0から始まりますし、プグラミング以外でも「0度(温度)」「x軸とy軸の0」「経度と緯度の0」「海抜0メートル」「0円(無料)」などの情報うときに0は必要です
15
+ 山田さんは、まず好物ある暴君ハ○ネロを買おうとお菓子売り場へ行ました
16
+
17
+ しかし、暴君ハ○ネロが置いてあるはずの売り場には肝心の商品がありません。
18
+
19
+ 店員さんに在庫はないか尋ねてみたところ、店員さんはこう答えました。
16
20
 
17
21
 
18
22
 
19
- ###null該当するプロパティに値存在しないことを表
23
+ 「暴君ハ○ネロ某外国人団体の爆買いで全部売り切れてしまいまして、今日はもう在庫がないんでよ」
20
24
 
21
25
 
22
26
 
23
- nullというのはオブジェクトのプロパティに該当する値が存在しないことを表ます
27
+ なんということょう
24
28
 
25
29
 
26
30
 
27
- 洋菓子店で「モンブランください」という注文をしたら「申し訳ございません、ただいま材料の確保が大変難しくなっており、本日はモンブランをお取り扱いしておりません」という返事が返ってきたとイメージしてみてください。
31
+ ```JavaScript
28
32
 
33
+ var tyrant_haxxnero_stock = null;
34
+
29
- この場合、洋菓子店がオブジェクト、モンブランという品目がプパティ、モンブランという商品そものがプロパティの値で、品目はあるけど商品は取り扱っていない = 存在しない(売り切れて0になったのではない)ことになります。
35
+ console.log('暴君ハ○ネロの在庫:', tyrant_haxxnero_stock);
36
+
37
+ ```
30
38
 
31
39
 
32
40
 
33
- お、nullはJavaScriptにおては型のひつであり、null型の値は型と同名のnullのみが認められているので、結果としてnullという値返ってきたら型もnull型ということになりま
41
+ 「在庫が存在しない言われてがっくり肩を落とた山田さんでしたが、無いもは仕方がありません
42
+
43
+ 山田さんは買い物を続けるため、別の売り場へと行くことにしました。
34
44
 
35
45
 
36
46
 
37
- ###undefinedはプロパティそのものが存在ことを表す
47
+ ###第二章「0 - 数値を表る」
38
48
 
39
49
 
40
50
 
51
+ 商品をかごに入れた山田さんはレジへ向かいました。
52
+
41
- undefinedは未定義という意味で参照したプロパティ定義されていないとを表し
53
+ そしてつものよにポイントカードを提示すると店員さんがこう尋ねした
42
54
 
43
55
 
44
56
 
45
- 洋菓子店で「みそラーメンください」という注文をしたら「申し訳ございません、当店ではみそラーメンは取り扱っておりません」という返事が返ってきたとイメージしてみてください。
46
-
47
- この場合、洋菓子店がオブジェク、みそラーメンという品目プロパティで、みそラーメンは取り扱ってい(洋菓子店の品目として定義されていない)ことになます
57
+ 「500円分お値引きできるポイントが貯まっています。今お使いになられますか?」
48
58
 
49
59
 
50
60
 
51
- ---
61
+ 店員さんの問いに山田さんは「はい、お願いします」と答えました。
62
+
63
+ すると、商品をレジに通し終えた店員さんが何かに気づいたような素振りでこう言いました。
52
64
 
53
65
 
54
66
 
55
- イメージのしやさを重視して、理解の取っ掛かりにできそうなざっくりとした説明にしてみました。
67
+ 「お会計は0円でね」
56
68
 
69
+
70
+
71
+ どうやら買い物の金額は丁度500円だったようです。
72
+
73
+ そして500円の値引きにより会計は0円。
74
+
75
+ 受け取ったレシートにも「合計 ¥0」と印刷されています。
76
+
77
+ つまり無料です。
78
+
79
+
80
+
81
+ ```JavaScript
82
+
83
+ // その数値が何の意味を持つのかはその時々で異なる(数・位置・距離・時間・サイズ等々)
84
+
85
+ var price = 500;
86
+
87
+ var discount = -500;
88
+
89
+ var payment = price + discount;
90
+
91
+ console.log('会計:', payment);
92
+
93
+ ```
94
+
95
+
96
+
97
+ 会計を済ませた山田さんは少し得した気分を味わいながら店を出ました。
98
+
99
+
100
+
101
+ ###第三章「undefined - まだ値に何も代入されていないことを表す」
102
+
103
+
104
+
105
+ 買い物を済ませた山田さんは夕食をとろうと定食屋に入ります。
106
+
107
+ そして席に着いた山田さんがメニューを見ていると「煮込み雑炊」の文字が目に飛び込んできました。
108
+
57
- (私自身初心者ようものなので、認識誤りがあるかもせん)
109
+ 完全に煮込み雑炊舌にった山田さんは早速店員さん注文します。
110
+
111
+ しかし店員さんの返事は期待したものではありませんでした。
112
+
113
+
114
+
115
+ 「あ…ごめんなさい。それ、来月からなんですよ。ごめんなさいね」
116
+
117
+
118
+
119
+ 返ってきた答えに落胆した山田さんは改めて煮込み雑煮を注文しましたが、煮込み雑煮も来月からだと言われて意気消沈してしまい、結局別のものを頼んで食べました。
120
+
121
+ 食事を終えた山田さんは、死んだ魚のような目をしながら帰宅しました。
122
+
123
+
124
+
125
+ ```JavaScript
126
+
127
+ // null も含めて値に何も代入されていないときに返ってくる初期値
128
+
129
+ var nikomizousui;
130
+
131
+ var nikomizouni;
132
+
133
+ console.log('煮込み雑炊:', nikomizousui);
134
+
135
+ console.log('煮込み雑煮:', nikomizouni);
136
+
137
+ ```
138
+
139
+
140
+
141
+ 「メニューには書いてあるけどまだ用意していない」という予想だにしない出来事にショックを受けた山田さん。
142
+
143
+ その日の夜は枕を濡らしながら眠りにつきました。
144
+
145
+
146
+
147
+ ###後書き
148
+
149
+
150
+
151
+ これでざっくりとしたイメージを掴んでもらって「違うんだ」と何となくでも分かってもらったら、その後に「JavaScriptには型というものがあって、こういう型があるんだよ~」と型の説明をする感じでどうでしょうか。
152
+
153
+
154
+
155
+ ```JavaScript
156
+
157
+ var tyrant_haxxnero_stock = null;
158
+
159
+
160
+
161
+ var price = 500;
162
+
163
+ var discount = -500;
164
+
165
+ var payment = price + discount;
166
+
167
+
168
+
169
+ var nikomizousui;
170
+
171
+
172
+
173
+ // 0 と null の型も含めた厳密な比較
174
+
175
+ console.log( payment === tyrant_haxxnero_stock );
176
+
177
+
178
+
179
+ // 0 と undefined の型も含めた厳密な比較
180
+
181
+ console.log( payment === nikomizousui );
182
+
183
+
184
+
185
+ // null と undefined の型も含めた厳密な比較
186
+
187
+ console.log( tyrant_haxxnero_stock === nikomizousui );
188
+
189
+ ```

2

修正

2016/05/04 07:43

投稿

flat
flat

スコア617

test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  洋菓子店で「モンブランください」という注文をしたら「申し訳ございません、ただいま材料の確保が大変難しくなっており、本日はモンブランをお取り扱いしておりません」という返事が返ってきたとイメージしてみてください。
28
28
 
29
- この場合、洋菓子店がオブジェクト、モンブランという品目がプロパティ、モンブランという商品そのものがプロパティの値で、品目はあるけど商品は存在しない(売り切れて0になったのではなく、元から商品が存在しない)ことになります。
29
+ この場合、洋菓子店がオブジェクト、モンブランという品目がプロパティ、モンブランという商品そのものがプロパティの値で、品目はあるけど商品は取り扱っていない = 存在しない(売り切れて0になったのではない)ことになります。
30
30
 
31
31
 
32
32
 

1

やや修正

2016/04/26 03:59

投稿

flat
flat

スコア617

test CHANGED
@@ -24,9 +24,9 @@
24
24
 
25
25
 
26
26
 
27
- 洋菓子店で「モンブランください」という注文をしたら「申し訳ございません、モンブランはただま売り切れておりま」という返事が返ってきたとイメージしてみてください。
27
+ 洋菓子店で「モンブランください」という注文をしたら「申し訳ございません、ただいま材料の確保が大変難しくなっており、本日はモンブランをお取り扱ておりません」という返事が返ってきたとイメージしてみてください。
28
28
 
29
- この場合、洋菓子店がオブジェクト、モンブランという品目がプロパティ、モンブランという商品そのものがプロパティの値です。
29
+ この場合、洋菓子店がオブジェクト、モンブランという品目がプロパティ、モンブランという商品そのものがプロパティの値で、品目はあるけど商品は存在しない(売り切れて0になったのではなく、元から商品が存在しない)ことになります。
30
30
 
31
31
 
32
32