閲覧いただき、ありがとうございます。
現在、独学でJsを勉強しております。
最近はじめ、グローバルスコープ、ローカルスコープ
(関数スコープ・ブロックスコープ)について調べていたところ、
下記のブログにたどり着きました。
https://qiita.com/wannabe/items/b2a0d63fc786eab13c48
上記ブログの「let(変数)」の章で下記のコードが示されていますが、
このコードの6行目から13行目の、x=3;で
ブロックスコープの中で、letをx=3;と再代入しているにも関わらず、
ブロックスコープ外の下の部分で、console.log(x);で3が出力されていることの理由がわからず、
お聞きさせていただきました。
Js
1function(){ 2 let x = 0; 3 console.log(x); //0 4 let x = 1; //error x has already been declared 5 console.log(x); //0 6 x = 2; 7 console.log(x) //2 8 if (true){ 9 console.log(x); //2 10 x = 3; 11 let y = "a"; 12 } 13 console.log(x); //3 14 console.log(y); //error y is not defined 15} 16 17function (){ 18 console.log(x); //x is not defined 19}
お分かりの方、ご教授いただけますと幸いです!!
お手数ですが、宜しくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/31 05:12
2020/05/31 05:44