ローカル変数とグローバル変数 | スコープ | JavaScript 超完全入門 基本から発展までのすべて

現在作成中です。今後加筆修正してまいります。
スポンサーリンク
スポンサーリンク

変数のスコープとは?

JavaScriptでは、変数にはスコープ(変数の有効範囲)があります。スコープによって、その変数がどこで利用可能かが決まります。スコープは主に2種類に分けられ、ローカル変数グローバル変数です。

グローバル変数とは?

グローバル変数は、プログラム全体でアクセス可能な変数です。関数の外で宣言された変数は、グローバル変数となり、プログラムのどこからでも参照できます。これは、全ての関数やブロックで有効な変数ということです。

グローバル変数の例

let globalVar = "I am global";

function showGlobalVar() {
    console.log(globalVar);
}

showGlobalVar();  // "I am global" を出力

この例では、変数globalVarは関数の外で定義されているため、関数showGlobalVarの中からでもアクセス可能です。

ローカル変数とは?

ローカル変数は、関数やブロック内でのみ有効な変数です。ローカル変数はその関数やブロックが終了すると無効になり、その範囲外からは参照できません。これは、外部のプログラムに影響を与えず、変数を安全に管理できるという利点があります。

ローカル変数の例

function showLocalVar() {
    let localVar = "I am local";
    console.log(localVar);
}

showLocalVar();  // "I am local" を出力

console.log(localVar);  // エラー: localVar is not defined

この例では、変数localVarは関数showLocalVar内で定義されており、関数外からはアクセスできません。

グローバル変数とローカル変数の違い

グローバル変数とローカル変数の主な違いを表にまとめました。

グローバル変数 ローカル変数
関数の外で宣言され、プログラム全体で使用可能。 関数やブロック内で宣言され、その範囲内でのみ使用可能。
複数の関数から参照できる。 関数やブロックが終了すると破棄され、他の関数やブロックからは参照できない。
スコープが広く、予期せぬ変更が起こるリスクがある。 スコープが限定されているため、変数の管理がしやすい。

変数のスコープによる影響

変数のスコープは、プログラムの動作やバグに大きく影響を与える可能性があります。グローバル変数は、どこからでもアクセス可能であるため、意図しない変更が加えられるリスクがあります。一方、ローカル変数はそのスコープ内でのみ有効であり、他のコードに影響を与えません。そのため、変数を定義する際には、スコープをしっかりと考慮することが重要です。

グローバル変数の使用を控える理由

グローバル変数は便利に思えるかもしれませんが、使用を控えるべき理由がいくつかあります。複数の関数やブロックでアクセスできるため、予期しない変数の上書きやバグが発生しやすくなります。できる限り、ローカル変数を使用して、変数のスコープを限定することが推奨されます。

まとめ

JavaScriptでは、変数にはグローバルスコープとローカルスコープがあり、変数がどこで利用できるかが異なります。グローバル変数はプログラム全体で使用できる反面、予期せぬバグを引き起こす可能性があり、ローカル変数はスコープが限定されるため、安全に変数を管理できます。スコープの違いを理解し、適切に変数を使用することが、健全なプログラム作成において重要です。