🦓 JavaScriptのスコープの種類
作成日: 2022/01/15
1

JavaScriptのスコープは5種類ある。

  • グローバルスコープ
  • scriptスコープ
  • 関数スコープ
  • ブロックスコープ
  • モジュールスコープ

結論として、、letconstを使おう。
詳しくは本文に↓↓

グローバルスコープ

= 一番外側にあるスコープ
= windowオブジェクト

var a = 1; → scriptスコープ
lef b = 1; → グローバルスコープ
const b = 1; → scriptスコープ

debugger;を用いて、devツールのsourcesで確認可能。

関数スコープ

= 関数内のスコープ
function(){}

ブロックスコープ

= {}で区切られた中のスコープ

注意点

  • let, constでしかブロックスコープは適用されない。
  • varを使うとグローバルスコープ(windowオブジェクト)に適用されてしまう(①参照)
  • 変数宣言はブロックスコープが有効だが、関数宣言では無効化される(①)
  • ただし、関数宣言でもletconstなどに格納されていれば、ブロックスコープが適用となる(②参照)

①ブロックスコープが意味をなさないケース

※これは全て表示・実行されてしまう

{
    var c = 1;
    var d = function() {
        console.log('ddd');
    }

    //関数宣言(letやconstに格納されていない)
    function e() {
        console.log('eee')
    }
}
console.log(c);
d();
e();

②ブロックスコープが適用されるケース

※ブロック外では表示・実行できない
letconstを使おう

{
    let c = 1;
    let d = function() {
        console.log('ddd');
    }

    let e = function() {
        console.log('eee')
    }
}
console.log(c);
d();
e();

事業会社にてコーダーをしています。制作は6年目。 インプットしたことをアウトプットしています。