Scope
スコープとは、変数名とその束縛が参照可能な範囲を定める概念で、字句的(静的)スコープと動的スコープの二種類がある。
目的
変数の可視性と生存期間を制御し、名前の衝突を防ぐことを目的とする。
メカニズム
字句スコープはコード構造で決まり(コンパイル時に確定)、動的スコープは呼び出し連鎖で決まる(実行時に解決)。ブロックスコープ(let/const)と関数スコープ(var)の別があり、クロージャは字句スコープを捕捉する。
ユースケース
- 変数を管理するしくみ
- クロージャの理解
- 名前の競合を避ける