スキルアップを始める!

【JavaScript】「スコープ」の基本と種類について

JavaScript(ジャバスクリプト)
JavaScript(ジャバスクリプト)
この記事は約3分で読めます。

※記事中に広告情報を含みます。

\ワードプレスのスキルアップはこちら!/ WordPress入門読本

JavaScriptにおけるスコープは、変数や関数がどの範囲で参照可能かを定義します。以下に、JavaScriptにおける主なスコープの種類を説明します。

グローバルスコープ(Global Scope)

グローバルスコープ(Global Scope): グローバルスコープは、コード内のどの場所からでもアクセス可能な最も外側のスコープです。

グローバルスコープで宣言された変数や関数は、どの関数やブロック内でも参照できます

ローカルスコープ(Local Scope)

ローカルスコープ(Local Scope): ローカルスコープは、関数内で定義されたスコープです。関数内で宣言された変数や関数は、その関数内からのみアクセス可能です。

ローカルスコープは関数ごとに分かれており、関数が呼び出されるたびに新しいローカルスコープが作成されます。

関数スコープ(Function Scope)

関数スコープ(Function Scope): 関数スコープは、古いバージョンのJavaScriptで一般的なスコープの形式です。

関数スコープでは、関数内で宣言された変数は、その関数内でのみアクセス可能です。関数スコープは、ローカルスコープの一種です。

ブロックスコープ(Block Scope)

ブロックスコープ(Block Scope): ブロックスコープは、ES6(ECMAScript 2015)で導入されたスコープの形式です。

ブロックスコープでは、if文やforループ、{}などの中括弧(ブロック)内で変数を宣言すると、その変数はそのブロック内でのみ参照可能です。

ブロックスコープは、letやconstキーワードを使用して変数を宣言することで作成されます。

具体的なスコープの例

以下に、それぞれのスコープの例を示します。

[rml_read_more]

// グローバルスコープ
var globalVariable = "グローバル変数";

function globalFunction() {
  // ローカルスコープ (関数スコープ)
  var localVariable = "ローカル変数";

  if (true) {
    // ブロックスコープ
    let blockVariable = "ブロック変数";
    const constantVariable = "定数変数";
    console.log(blockVariable); // 出力: ブロック変数
  }

  console.log(globalVariable); // 出力: グローバル変数
  console.log(localVariable); // 出力: ローカル変数
  // console.log(blockVariable); // エラー: blockVariable is not defined
}

globalFunction();
console.log(globalVariable); // 出力: グローバル変数

上記のコードでは、4つの異なるスコープが示されています。

globalVariableはグローバルスコープで宣言されており、関数内外のどこからでもアクセス可能です。

localVariableは関数スコープ内で宣言されており、関数内からのみアクセス可能です。

blockVariableとconstantVariableはブロックスコープ内で宣言されています。ブロック内部からのみアクセス可能です。そのため、コメントアウトされたconsole.log(blockVariable);の行ではエラーが発生します。

まとめ

スコープは、変数の可視性と衝突を制御するために非常に重要です。適切なスコープの使用により、変数名の重複を避けることができ、コードの予測可能性と保守性を高めることができます。

URLをコピーしました!