回答編集履歴

2

解説を追加

2018/04/10 01:19

投稿

defghi1977
defghi1977

スコア4756

test CHANGED
@@ -83,3 +83,71 @@
83
83
  }
84
84
 
85
85
  ```
86
+
87
+
88
+
89
+ 更に追記:
90
+
91
+ > 無知ですみません。iの初期値が15なのですがどうしてなのでしょうか?
92
+
93
+ よろしくお願いします。
94
+
95
+
96
+
97
+ 変数`i`を`script`要素直下で定義しているのでグローバル変数化してしまったからです. `script`要素内のコードは`window`コンテキストの単一スコープ下で実行されるので, ここで定義された変数は**全ての`script`要素内のコードで共有されます**.
98
+
99
+
100
+
101
+ つまり,
102
+
103
+ ```HTML
104
+
105
+ <script>
106
+
107
+ var i = 100;
108
+
109
+ </script>
110
+
111
+ <script>
112
+
113
+ var i = 200;
114
+
115
+ </script>
116
+
117
+ ```
118
+
119
+ とあれば, これは
120
+
121
+ ```JavaScript
122
+
123
+ <script>
124
+
125
+ var i = 100;
126
+
127
+ var i = 200;
128
+
129
+ </script>
130
+
131
+ ```
132
+
133
+ と等価であり, 更に
134
+
135
+ ```JavaScript
136
+
137
+ <script>
138
+
139
+ var i;
140
+
141
+ i = 100;
142
+
143
+ i = 200;
144
+
145
+ </script>
146
+
147
+ ```
148
+
149
+ と等価です.
150
+
151
+
152
+
153
+ 従ってあなたのコードでは最初`document.write`で使った変数`i`の最終値が`16`だったので, 次の`script`要素実行時にはこの内容が引き継がれていたのです.

1

for文についての指摘を追加

2018/04/10 01:19

投稿

defghi1977
defghi1977

スコア4756

test CHANGED
@@ -67,3 +67,19 @@
67
67
  });
68
68
 
69
69
  ```
70
+
71
+ 追記:
72
+
73
+ あと,**for文が死んでいる**ので条件を見直して下さい.(一部のコードを切り出されてしまっているので, 正しいコードの提示ができません.)
74
+
75
+
76
+
77
+ ```JavaScript
78
+
79
+ for(var i = 1; i>=15; i++){
80
+
81
+ //さて, ここは実行されるでしょうか?
82
+
83
+ }
84
+
85
+ ```