Scope



スキャン


Javascriptでは、scorpがアクセスできる変数を定義します.グローバルスキャンとゾーンスキャンに分けられます.

グローバルスキャン



変数が関数外またはカッコ外で宣言されている場合、グローバルスキャンはグローバルスキャンと呼ばれます.
const globalVariable = 'global'

{
    let name = 'j'
    console.log(name) // j
    name = 'hello'
    console.log(name) // hello
    console.log(globalName) // global
}
console.log(name) // 
console.log(globalName) // global
グローバル変数は、アプリケーションの開始から終了までメモリに書き込むのが望ましい.

ゾーンスキャン


ゾーンスキャンは、コードの特定の部分でのみ使用可能な変数です.関数スキャンとブロックスキャンに分けられます.

かんすうそういん



関数内で変数を宣言する場合は、宣言された関数内でのみ使用できます.
function jHello () {
  const hello = 'Hello J!'
  console.log(hello)
}
jHello() // 'Hello J!!'
console.log(hello) // Error, hello is not defined

ブロックスキャン



カッコ内で変数がletまたはconstであることを宣言すると、これらの変数はブロックでのみ使用できます.
{
  const hello = 'Hello J!'
  console.log(hello) // 'Hello J!'
}
console.log(hello) // Error, hello is not defined
リファレンス
How JavaScript variable scoping is just like multiple levels of government by Kevin Kononenko
https://www.freecodecamp.org/news/how-javascript-variable-scoping-is-just-like-multiple-levels-of-government-d7ddabc49bf1/