JavaScript | 基礎構文:スコープ・実行コンテキスト – ローカルスコープ

JavaScript JavaScript
スポンサーリンク

ローカルスコープとは何か

スコープとは「変数や関数がどこから見えるか(使えるか)」の範囲のことです。
その中で ローカルスコープ は「関数やブロックの中だけで有効な範囲」を指します。ここで宣言された変数は、その関数やブロックの外からは使えません。つまり「その場限りの変数置き場」と考えると分かりやすいです。


実行コンテキストとの関係

JavaScript ではコードが動くときに「実行コンテキスト」という環境が作られます。関数を呼び出すと「関数実行コンテキスト」が生成され、その中でローカルスコープが用意されます。

  • 関数の中で宣言した変数は、その関数の実行コンテキストに属する。
  • 関数が終わると、そのローカルスコープは消える。
  • 変数を探すときは「まずローカルスコープ → 外側のスコープ → 最後にグローバルスコープ」の順で探される。

例題で理解する

例題1:関数の中だけで使える変数

function greet() {
  const message = "こんにちは";
  console.log(message);
}

greet(); // こんにちは
console.log(message); // エラー: message は定義されていません
JavaScript

message は関数の中でしか使えないため、外から参照するとエラーになります。


例題2:同じ名前でも別のスコープ

const name = "太郎"; // グローバルスコープ

function introduce() {
  const name = "花子"; // ローカルスコープ
  console.log("私は " + name + " です");
}

introduce(); // 私は 花子 です
console.log("外では " + name); // 外では 太郎
JavaScript

同じ変数名でも、ローカルスコープとグローバルスコープで別々に存在できます。


例題3:ブロックスコープ(if や for の中)

if (true) {
  let x = 10; // ブロックスコープ
  console.log(x); // 10
}

console.log(x); // エラー: x は定義されていません
JavaScript

letconst を使うと、ブロック {} の中だけで有効なローカルスコープが作られます。


ローカルスコープのメリット

変数の衝突を防げる

外側の変数と名前が同じでも、ローカルスコープに閉じ込められるので安全です。

コードの見通しが良くなる

「この関数の中だけで使う変数」と分かるため、管理がしやすくなります。

メモリ効率が良い

関数が終わるとローカルスコープは消えるので、不要な変数が残りません。


まとめ

  • ローカルスコープは「関数やブロックの中だけで有効な範囲」。
  • 実行コンテキストが作られると、その中でローカルスコープが用意される。
  • 外からは参照できないため、変数の衝突や管理の難しさを防げる。

初心者は「ローカルスコープは“その場限りの変数置き場”」とイメージすると理解しやすいです。

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