スコープとは
JavaScriptにおけるスコープ(scope)とは、変数や関数が参照可能な範囲を指します。スコープは、変数や関数が定義された場所によって決まります。JavaScriptでは、主に次の2つのスコープがあります。
- グローバルスコープ(Global Scope): グローバルスコープは、どこからでもアクセスできる最も外側のスコープです。スクリプト内のどこからでもアクセス可能な変数や関数がグローバルスコープに定義されます。ただし、モジュール内や関数内で
var
やfunction
を使わずに変数や関数を定義すると、それらはグローバルスコープではなくモジュールスコープやローカルスコープになります。
// グローバルスコープ
var globalVar = "I am a global variable";
function globalFunction() {
console.log("I am a global function");
}
2. ローカルスコープ(Local Scope): ローカルスコープは、関数内で定義された変数や関数が含まれます。ローカルスコープ内で定義された変数や関数は、その関数内でのみアクセス可能です。
function localScopeExample() {
// ローカルスコープ
var localVar = "I am a local variable";
function localFunction() {
console.log("I am a local function");
}
console.log(localVar); // ローカル変数にアクセス可能
localFunction(); // ローカル関数にアクセス可能
}
localScopeExample();
// console.log(localVar); // エラー: localVar は localScopeExample の外側からはアクセス不可
// localFunction(); // エラー: localFunction は localScopeExample の外側からはアクセス不可
スコープのルールは、変数の参照や関数の呼び出し時に適用されます。JavaScriptはスコープチェーンを持ち、変数や関数が参照される際に、その参照先がどのスコープに存在するかを順番に探索します。