こんにちは.
MDNのletの解説ページに以下の文とコードが記載されています.
レキシカルスコープと組み合わせた Temporal dead zone の例
レキシカルスコープにより、式 (foo + 55) 内の識別子 "foo" は、if ブロックの foo に評価され、その上にある 33 の値を持つ変数 foo には評価されません。
その行では、if ブロックの "foo" はすでにレキシカル環境で作成されていますが、未だ(ステートメントそのものの一部である)その初期化に到達・終了していないので、その foo はまだ Temporal dead zone 内にあります。
javascript
1function test(){ 2 var foo = 33; 3 if (true) { 4 let foo = (foo + 55); // ReferenceError 5 } 6}
レキシカルスコープと丸括弧を組み合わせるとReferenceErrorとなるようですが, 理解できませんでした.
細かく砕くとどのような動作をして, その結果参照エラーが起こっているのでしょうか.
宜しくお願い致します.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/17 00:40
2019/12/17 00:46
2019/12/17 00:47
2019/12/17 00:54