ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript のスコープを理解する
JavaScript のスコープとクロージャの概念は、言語を習得するために必要な基礎ブロックです。彼らは、いくつか例を挙げると、コンストラクター、ファクトリー機能、IIFE の背後にある縁の下の力持ちです。
この記事は、実際的な例を使用して JavaScript のスコープを説明することを目的としています。次の記事では、JavaScript クロージャについて説明します。
スコープは、変数が JavaScript プログラム内で使用できる場所を決定するだけです。基本的に、スコープには次の 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 サイトの他の関連記事を参照してください。