回答編集履歴
2
訂正
test
CHANGED
@@ -132,7 +132,7 @@
|
|
132
132
|
|
133
133
|
なので、(3)の変数`x`は、スコープAで定義されている変数だ、とJavaScriptは判断し、その値`0`に`1`を足します。
|
134
134
|
|
135
|
-
つまり、ここでの変数`x`は`
|
135
|
+
つまり、ここでの変数`x`は`1`です。
|
136
136
|
|
137
137
|
|
138
138
|
|
1
補完
test
CHANGED
@@ -2,7 +2,13 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
+
---
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
JavaScript では、**定義されたスコープ**に変数が閉じ込められ、外側に影響することはできません。
|
10
|
+
|
5
|
-
|
11
|
+
そして、変数を参照する際に、スコープを内側から順番に探してきます。
|
6
12
|
|
7
13
|
|
8
14
|
|
@@ -122,6 +128,8 @@
|
|
122
128
|
|
123
129
|
そこで、その外側のスコープ、Aの中で探したところ、定義文が見つかりました。
|
124
130
|
|
131
|
+
スコープC、Dの定義は閉じ込められているので、外側から参照できません。
|
132
|
+
|
125
133
|
なので、(3)の変数`x`は、スコープAで定義されている変数だ、とJavaScriptは判断し、その値`0`に`1`を足します。
|
126
134
|
|
127
135
|
つまり、ここでの変数`x`は`0`です。
|
@@ -144,6 +152,8 @@
|
|
144
152
|
|
145
153
|
まず、参照しているスコープ、Cの中で探したところ、定義文が見つかりました。
|
146
154
|
|
155
|
+
スコープDの定義は閉じ込められているので、外側から参照できません。
|
156
|
+
|
147
157
|
なので、(5)の変数`x`は、スコープCで定義されている変数だ、とJavaScriptは判断し、その値`11`に`1`を足します。
|
148
158
|
|
149
159
|
つまり、ここでの変数`x`は`12`です。
|
@@ -156,6 +166,8 @@
|
|
156
166
|
|
157
167
|
そこで、その外側のスコープ、Aの中で探したところ、定義文が見つかりました。
|
158
168
|
|
169
|
+
スコープC、Dの定義は閉じ込められているので、外側から参照できません。
|
170
|
+
|
159
171
|
なので、(6)の変数`x`は、スコープAで定義されている変数だ、とJavaScriptは判断し、その値`1`に`1`を足します。
|
160
172
|
|
161
173
|
つまり、ここでの変数`x`は`2`です。
|
@@ -166,6 +178,8 @@
|
|
166
178
|
|
167
179
|
まず、参照しているスコープ、Aの中で探したところ、定義文が見つかりました。
|
168
180
|
|
181
|
+
スコープB、C、Dの定義は閉じ込められているので、外側から参照できません。
|
182
|
+
|
169
183
|
なので、(7)の変数`x`は、スコープAで定義されている変数だ、とJavaScriptは判断し、その値`2`に`1`を足します。
|
170
184
|
|
171
185
|
つまり、ここでの変数`x`は`3`です。
|