ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の入れ子関数スコープ: 初心者ガイド
JavaScript は、その多用途性と特性に驚かされる言語です。そのような部分の 1 つは、入れ子関数が変数スコープを処理する方法です。 JavaScript を始めたばかりの場合でも、コーディング スキルの向上を目指している場合でも、この概念を理解することは、JavaScript を習得するために重要です。
このブログでは、入れ子関数とは何か、そのスコープがどのように機能するか、そしてこの知識がなぜ重要なのかを見ていきます。最後には、入れ子関数が変数とどのように相互作用するか、およびクロージャーの力について理解できるようになります。
ネストされた関数 は、別の関数内で定義された単なる関数です。 JavaScript では、これらの内部関数は、外部 (囲み) スコープ内の変数にアクセスできます。この動作は、字句スコープ、または、より多くの場合、クロージャとして知られています。
ネストされた関数の動作は、字句スコープとして知られる概念によって導かれます。これは、変数のスコープがソース コード内の位置によって変数のスコープが定義されることを意味します。
ネストされた関数のスコープについて覚えておくべき主なルールは次のとおりです。
1️⃣ 内部関数は外部関数から変数にアクセスできます:
内部関数は、外部関数で宣言された変数に完全にアクセスできます。
?例:
function outerFunction(){ const outerVar = "I am from Outer Function!"; function innerFunction(){ console.log(outerVar); // Accessing `outerVar` from outer scope } innerFunction(); } outerFunction(); // Output: I am from Outer Function!
2️⃣ 外部関数は内部関数から変数にアクセスできません:
内部関数内で宣言された変数は内部関数に対してローカルであり、外部関数からは見えません。
?例:
function outerFunction(){ function innerFunction(){ const innerVar = "I am from Inner Function"; } console.log(innerVar); // Error: Uncaught ReferenceError: innerVar is not defined innerFunction(); } outerFunction();
3️⃣ ネストされた関数は、外側の関数が返された後でも外側のスコープにアクセスできます
ここでクロージャが活躍します。クロージャを使用すると、外側の関数が実行中でなくなった場合でも、内側の関数はそれを囲んでいるスコープの変数を「記憶」できます。
?例:
function outerFunction() { let count = 0; return function innerFunction() { count++; console.log("count = " + count); }; } const counter = outerFunction(); for(let i=1; i <= 5; i++){ counter() } /* Output: count = 1 count = 2 count = 3 count = 4 count = 5 */
内部関数は count 変数を保存し、呼び出しを繰り返すたびに数値を増やすことができます。
ネストされた関数スコープをマスターすると、強力なコーディング パターンが解放され、次のことが可能になります。
クロージャは、入れ子関数と密接に関連する高度な概念です。外側の関数が実行された後、内側の関数が外部スコープの変数を記憶してアクセスすると、クロージャが作成されます。
ここでは、次のことを覚えておいてください。
クロージャを使用すると、ネストされた関数が外側のスコープの変数を生きたまま「維持」できます。
次のブログでは、クロージャについて詳しく説明し、実際の使用法と、クロージャがどのように JavaScript を強力な言語にするのかを見ていきます。
ネストされた関数の範囲を理解することは、JavaScript を始める上で重要なステップです。これにより、クロージャ、データ プライバシー、高度なプログラミング パターンを理解するための基盤が作成されます。ネストされた関数は、JavaScript の語彙スコープの力と、効率的で柔軟で再利用可能なコードを生成する機能を強調します。
閉鎖を検討する準備はできていますか?シリーズの次のブログをお楽しみに! ?
コーディングを楽しんでください! ✨
以上がJavaScript の入れ子関数スコープ: 初心者ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。