する質問をすることでしか得られない、回答やアドバイスがある。156javascript初心者です。クロージャやらスコープ周りを勉強していると混乱してきました。どなたかお助けください。質問1まずクロージャの理解が合ってるか知りたいです。次の様にクロージャを生成する関数があったとします。funcs}console.log(testScope())funcs[1]〜funcs[3]にクローズされた変数nは、それぞれ外側のnを参照するので、結果同じ値を取るという認識でおります。↑n++されて3となったnを見てる、と捉えているんですが合ってますでしょうか。質問2for文でletを使うと何が起こっているのか知りたいです。上記例でfuncs[1]は1を、funcs[2]は2を保持しようとすると次の様にできると思います。funcs}console.log(testScope())するとコンソールログ上で狙いの挙動になります。※ChromeDevToolで見るとトップレベルが{0:f,1:f,2:f}からObjectになってますが、スコープのタイプがClosureからBlockに変わったことと関係あるんでしょうか???)ここで、なぜ各ループでnが使われているのに、結果的に違うnを参照できてるんでしょうか。funcs}諸々理解が追いついておらず質問が的を射てないかもしれませんが、何卒ご回答の程よろしくお願いします。attachmentクリップ3気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。自分も答えを知りたい質問者以外のユーザにも役立つ評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。質問の評価を上げたことを取り消します低評価-評価を下げられる数の上限に達しました評価を下げることができません1日5回まで評価を下げられます1日に1ユーザに対して2回まで評価を下げられます質問の評価を下げるteratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。コメントをしてください。送信する質問の評価を下げる機能の利用条件この機能を利用するためには、以下の事項を行う必要があります。件sort評価が高い順sort新着順sort古い順linkcheckベストアンサー+61番目の場合、letはループと別枠で存在する変数ですので、ループ構文で書き換えても特殊な動きをすることはなく、抜けきった後の3となります。forの中にletを書いた場合、かなり特殊な動作となります。ES2017の仕様書(かなり重いです)を確認してみたところ、ループのfor文自体と、ループのブロック1回ごとがそれぞれスコープを生成する(変数宣言がletの場合のみ、constならfor文全体で1スコープ)ループ変数の加算は、前のループでの値を次のループのスコープにコピーしてから行うというような動作でした。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。00:09まさに求めていたご回答をありがとうございます!相当特殊なんですね。私は仕様書を読むべきだったんですね、リンクを教えていただきありがとうございます。骨が折れそうですがじっくり見てみたいと思います。私は仕様書を読むべきだったんですね、リンクを教えていただきありがとうございます。骨が折れそうですがじっくり見てみたいと思います。横から失礼いたします。クロージャーとブロック、スコープについて深掘りした、有用なご質問とご回答、ありがとうございます。for文は次のようなブロックスコープを生成するイメージで合ってますか?の答えは「合ってます」ということになりそうですね。横から失礼いたします。クロージャーとブロック、スコープについて深掘りした、有用なご質問とご回答、ありがとうございます。答えは「合ってます」ということになりそうですね。01:17ありがとうございます!そうみたいでよかったです。この点に踏み込んでるソースがなくて参っていました。みたいでよかったです。この点に踏み込んでるソースがなくて参っていました。再度、横から失礼致します。195〜196ページに、このご質問と同じ論点の説明とコード例がありました。いうように変更されました。for文は次のようなブロックスコープを生成するイメージと同様のものになっていますので、機会があればご覧になるとよいかもしれません。再度、横から失礼致します。195〜196ページに、このご質問と同じ論点の説明とコード例がありました。いうように変更されました。ご覧になるとよいかもしれません。頂いたご意見への回答は行っておりません。