関数の仮引数とvarは関数スコープだけを生成し、letとconstは関数スコープとブロックスコープの両方を生成します。 ここまでは、各スコープの概要について簡単に紹介しました。次節からは、それぞれのスコープの仕様に基づき、スコープについて知っておきたい基礎的なことをまとめていきます。 グローバルスコープとwindowオブジェクト グローバル変数を宣言するというのは、実際にはグローバルオブジェクト(ブラウザの場合はwindowオブジェクト)のプロパティを追加することになります。 そのため、グローバル変数は、windowオブジェクトのプロパティとしてアクセスできます。 var scope = 'global'; // windowオブジェクトのプロパティとして追加される console.log(window.scope); // -> global なお、letやconstをトップレベルで宣言
![JavaScriptのスコープ総まとめ | 第1回 スコープの種類とその基本](https://cdn-ak-scissors.b.st-hatena.com/image/square/5d06e1db98832ed2218d2e14eea0c2ce960d8011/height=288;version=1;width=512/https%3A%2F%2Fcodegrid.imgix.net%2Fimage.png%3Fixlib%3Djs-3.8.0%26w%3D1200%26h%3D630%26mark%3Dhttps%253A%252F%252Fcodegrid.imgix.net%252F~text%253Fixlib%253Djs-3.8.0%2526w%253D1000%2526txt%253D%2525E3%252582%2525B9%2525E3%252582%2525B3%2525E3%252583%2525BC%2525E3%252583%252597%2525E3%252581%2525AE%2525E7%2525A8%2525AE%2525E9%2525A1%25259E%2525E3%252581%2525A8%2525E3%252581%25259D%2525E3%252581%2525AE%2525E5%25259F%2525BA%2525E6%25259C%2525AC%2526txt-fit%253Dmax%2526txt-size%253D57%2526txt-font%253DHiragino%252520Sans%252520W5%2526txt-color%253Dfff%26mark-x%3D90%26mark-y%3D195%26blend%3D%25233D4AB1%26blend-mode%3Doverlay%26txt%3DJavaScript%25E3%2581%25AE%25E3%2582%25B9%25E3%2582%25B3%25E3%2583%25BC%25E3%2583%2597%25E7%25B7%258F%25E3%2581%25BE%25E3%2581%25A8%25E3%2582%2581%2520%257C%2520%25E7%25AC%25AC1%25E5%259B%259E%26txt-align%3Dtop%252Cleft%26txt-font%3DHiragino%2520Sans%2520W5%26txt-size%3D30%26txt-pad%3D100%26txt-color%3Dfff)