JS/ES – 変数のスコープ

スコープの種類と宣言キーワード

スコープの種類

グローバルスコープ

ドキュメント内のどこからでも参照可能。

関数スコープ

宣言された関数内でのみ参照可能。関数内の入れ子の関数・ブロックからは参照可能。

ブロックスコープ

宣言されたブロック内でのみ参照可能。ブロック内の入れ子の関数・ブロックからは参照可能。

宣言キーワードとスコープ

キーワードなしの宣言

ドキュメント内のどこからでも参照可能なグローバルスコープ。

var

宣言された関数内の関数スコープ。

  • ドキュメント直下で宣言した場合、グローバルスコープ
  • 関数で宣言した場合、その関数内のスコープ
  • ブロック内で宣言した場合、そのすぐ外側の関数のスコープ(ブロックがドキュメント直下にあればグローバルスコープ)

let, const

宣言されたブロック内のブロックスコープ。

  • ドキュメント直下で宣言した場合、グローバルスコープ
  • 関数で宣言した場合、その関数内のスコープ

確認

グローバルスコープ

JSコード

実行結果

 

関数スコープ

  • var, let, constとも関数内で宣言された場合はその関数内のみのスコープ
  • 宣言された関数の中に入れ子で宣言された関数からは参照可能
  • 入れ子の内側の関数内で宣言されたvar, let, constは、外側の関数からは参照できない

JSコード

実行結果

ブロックスコープ

  • var宣言はブロック内外に関わらず参照可能
  • let, constは宣言されたブロック内のみのスコープ
  • 宣言されたブロックの中の入れ子のブロックからは参照可能
  • 入れ子の内側のブロック内で宣言されたvar, let, constは、外側のブロックからは参照できない

JSコード

実行結果

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です