回答編集履歴

2

訂正

2020/02/14 07:16

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36900

test CHANGED
@@ -132,7 +132,7 @@
132
132
 
133
133
  なので、(3)の変数`x`は、スコープAで定義されている変数だ、とJavaScriptは判断し、その値`0`に`1`を足します。
134
134
 
135
- つまり、ここでの変数`x`は`0`です。
135
+ つまり、ここでの変数`x`は`1`です。
136
136
 
137
137
 
138
138
 

1

補完

2020/02/14 07:16

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア36900

test CHANGED
@@ -2,7 +2,13 @@
2
2
 
3
3
 
4
4
 
5
+ ---
6
+
7
+
8
+
9
+ JavaScript では、**定義されたスコープ**に変数が閉じ込められ、外側に影響することはできません。
10
+
5
- JavaScript では、変数を参照する際に、スコープを内側から順番に探してきます。
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`です。