JavaScript のスコープを理解する

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-14 06:58:43695ブラウズ

Understanding Scopes in JavaScript

JavaScript のスコープとクロージャの概念は、言語を習得するために必要な基礎ブロックです。彼らは、いくつか例を挙げると、コンストラクター、ファクトリー機能、IIFE の背後にある縁の下の力持ちです。

この記事は、実際的な例を使用して JavaScript のスコープを説明することを目的としています。次の記事では、JavaScript クロージャについて説明します。

スコープと語彙のスコープ

スコープは、変数が JavaScript プログラム内で使用できる場所を決定するだけです。基本的に、スコープには次の 2 種類があります。

  1. グローバルスコープ
  2. ローカルスコープ

グローバルスコープ

グローバル スコープでは、変数はどこでも利用可能になり、プログラム内のどこでも使用できます。技術的には、変数が関数内または {中括弧 } 内で宣言されていない場合、その変数はグローバル スコープ内にあると言われます。

ローカルスコープ

一方、ローカル スコープでは、変数は特定のコンテキストでのみ使用可能になり、そのコンテキストでのみ使用できます。技術的には、変数が関数内または {中括弧 } 内で宣言されている場合、それらはローカル スコープであると言われます。

let x = 3; // x (global scoped)

function addXY () {
    let y = 5; // y (locally scoped)
    return  x + y; // returns 8 since x is available anywhere in this program
}

より広範囲の範囲

ECMAScript は、JavaScript などのスクリプト言語の中核機能を定義する標準仕様であり、プラットフォーム間での一貫性と相互運用性を保証します。国際単位系 (SI) がメートルやキログラムなどの測定の標準化されたフレームワークを提供して世界中で一貫性を確保しているのと同じように、ECMAScript は JavaScript などのスクリプト言語の標準を設定し、異なるプラットフォームや環境間で均一に動作することを保証します。

この JavaScript の標準仕様は、エディションを重ねるごとに進化し、各バージョンで新機能や改善が追加されています。これらのエディションの中には、let/const を導入するメジャー アップデートを提供した ES6 (ECMAScript 2015) があります。

ES6 より前では、変数は var キーワードを使用して JavaScript で定義されていました。 var を使用すると、変数の再定義と更新の両方が可能です。ただし、var 変数は関数内でのみローカルにスコープされます。 {中括弧 } 内にスニペットを含めるローカル スコープの拡張は、let/const を通じて ES6 によって導入されました。簡単に言えば、var 変数は関数内でローカルにスコープされますが、それ以外の場所ではグローバルにスコープされます。

let と const は、変数が定義されている最も近い { 中括弧 } のセット内でのみ変数を使用できるようにするブロック スコープを導入します。これらの中括弧は、for ループ、if-else 条件、またはその他の同様の JavaScript 構造の中括弧にすることができます。このような中括弧はコード ブロックとも呼ばれます。

例:

function addXYZ() {
    var x = 3;
    let y = 4;
    const z = 5;
    return x + y + z; // 12
}

// These log undefined because var, let, and const variables are locally scoped within functions.
console.log(x);
console.log(y);
console.log(z);
let age = 10; // global variable

if (age < 18) {
    let letCandy = 2; // block-scoped variable
    console.log(`You are entitled to ${letCandy} candies`);
} else {
    var varCandy = 4; // function-scoped variable
    console.log(`You are entitled to ${varCandy} candies`);
}

console.log(age); // Logs 10, as age is globally scoped
console.log(letCandy); // Throws ReferenceError, as letCandy is block-scoped
console.log(varCandy); // Logs 4, as varCandy is globally scoped outside of functions

次の記事では、字句のスコープとクロージャについて説明します。読んでいただきありがとうございます。

以上がJavaScript のスコープを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。