letを使用して宣言した変数はそのブロックの中でのみ有効で再宣言不可 = ブロックが違えば違う変数として同名で宣言できる。という認識なのですが、この解釈の仕方は合っているのでしょうか?
以下のようにfor文の外と条件式部分でletを用いて同名の変数を宣言した場合、問題なく宣言できるというところまでは理解できます。
しかしなぜfor分の条件式部分と同名の変数をfor文の処理の中で宣言してもエラーが出ないのかがわかりません。
for文の()部分と{}部分は同じブロックではないのでしょうか?だとすればなぜfor文の外で宣言した変数(let i = 200)と( )部分のlet i = 1は衝突しないのでしょうか?
let i = 200; for (let i = 1; i < 10; i++){ let i = 10; console.log(i); } //実行結果 10,10,10,10,10,10,10,10,10
調べてもよくわからなかったので、できるだけ噛み砕いて解説していただけると幸いです。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/16 11:29 編集
2020/12/16 11:33
2020/12/16 11:35 編集
2020/12/16 11:47