【JavaScript】スコープとは?スコープの種類と違い

JavaScript

スコープとは?

スコープとは、変数の適用範囲(使える範囲)を示す概念です。

大きく分けて2種類のスコープがあります。

  • グローバルスコープ
  • ローカルスコープ(ブロックスコープ・関数スコープ)

以下がざっくりとした図解です。1つ1つ説明していきます。

グローバルスコープ

グローバルスコープとは、プログラムの全範囲を示します。

基本的にどんな変数がグローバルスコープを持つかというと、関数や{}の中にない変数です。

枠組みに囚われていないため、プログラム全体のどこでも使用することができます。

ローカルスコープ

グローバルスコープとは対照的に、ローカルスコープはプログラム内のある範囲です。

定義した変数がローカルスコープを持つかどうかは、var, let, const の何で定義するかによって異なります。それについては、「【JavaScript】var, let, const の違い・使い分け」で詳しく説明しておりますので、気になる方はご覧ください。

また、ローカルスコープは更に2つに分けられます。

ブロックスコープ

{}で囲まれた範囲のことです。イメージはこんな感じです。

関数スコープ

関数内の範囲です。関数の{}に囲まれているところです。

まとめ

さて、最初に挙げた画像の再掲です。

変数 a は、グローバルスコープを持ち、b はブロックスコープを持つとともに、c は関数スコープを持っているのがわかるかと思います。

各スコープについては以上です。

宣言の仕方によって、変数のスコープは変わるので気になる方はこちらもどうぞ。

>>>>> 【JavaScript】var, let, const の違い・使い分け

タイトルとURLをコピーしました