この記事は、javascript に関する関連知識を提供するもので、主に匿名関数に関する問題を紹介し、ネストや再帰に関する内容も含まれています。
[関連する推奨事項: JavaScript ビデオ チュートリアル ]
1. 変数のスコープ
考察: 変数を宣言した後、その変数はどこでも使用できるでしょうか?
答え: いいえ。
例: 関数内で var キーワードを使用して宣言された変数には、関数の外ではアクセスできません。
#要約: 変数の使用には範囲があります。
スコープ分割: グローバル スコープ、関数スコープ、ブロック レベル スコープ (ES6 によって提供)。 さまざまなスコープに対応する変数: グローバル変数、ローカル変数、ブロックレベル変数 (ES6 によって提供)。グローバル変数: 関数内で宣言されていない変数 (明示的定義)、または関数内で var を省略して宣言された変数 (暗黙的定義) は、呼び出されるのはグローバル変数です。
スコープ: 同じページ ファイル内のすべてのスクリプトで使用できます。ローカル変数: 関数本体で var キーワードを使用して定義された変数はローカル変数と呼ばれ、関数本体内でのみ有効です。
ブロックレベル変数: ES6 が提供する let キーワードで宣言された変数はブロックレベル変数と呼ばれ、"{ の間でのみ有効です。 }" (if、for、while ステートメントなど)
ガベージ コレクションのメカニズム
JavaScript では、ローカル変数は関数の実行中にのみ存在し、このプロセス中にローカル変数は (スタックまたはヒープ) に格納されます。 ) 値を保存するためにメモリ上に対応するスペースを割り当て、関数の終了まで関数内でこれらの変数を使用します。関数の実行が終了すると、ローカル変数が存在する必要はなくなり、JavaScript はガベージ コレクション メカニズムを通じてローカル変数が占有しているメモリ領域を自動的に解放します。 開発中にローカル変数の値を保持したい場合は、次の 2 つの方法で実現できます。2. 匿名functionコンセプト: いわゆる関数式は、宣言された関数を変数に割り当て、その変数を介して関数呼び出しとパラメーター転送を完了することを指します。また、カスタム関数を実装する別の方法でもあります。 JavaScript。 関数式 匿名関数概念: 匿名関数とは、関数名のない関数を指します。 関数: グローバル変数の汚染や関数名の競合を効果的に回避できます。 説明: これは関数式の別の表現であるだけでなく、関数宣言を通じて呼び出すこともできます。 アロー関数 コンセプト: ES6 では、アロー関数と呼ばれる匿名関数を記述するための新しい構文が導入されています。 特徴: アロー関数式の構文は関数式よりも短いです。 3. ネストと再帰
#関数のネストとスコープ チェーン
特徴: 内部関数は外部関数のスコープ内でのみ実行できます。内部関数の実行中に、変数を導入する必要がある場合は、まず現在のスコープで検索されます。見つからない場合は、グローバル スコープに到達するまで上位レベルのスコープで検索を続けます。このチェーン クエリ関係をスコープ チェーンと呼びます。
概念: 再帰呼び出しは、入れ子になった関数呼び出しにおける特別な種類の呼び出しです。関数本体内で関数が自分自身を呼び出す処理のことを指し、この種の関数を再帰関数と呼びます。
以下は階乗計算のデモです。
Note
再帰呼び出しは、可変次元の多次元配列を走査する場合に非常に適していますが、大量のデータを占有します。リソースが多く、実装と保守が難しいため、開発中は関数の再帰呼び出しを慎重に使用する必要があります。
フィボナッチ数列の N 番目の項の値を見つける
フィボナッチ数列とは何かを理解する
フィボナッチ数列シーケンスは、「1、1、2、3、5、8、13、21...」など、黄金分割シーケンスとも呼ばれます。
パターンを見つける: このシーケンスは 3 番目の項目から始まり、各項目は前の 2 つの項目の合計に等しくなります。
コード実装のアイデア
[関連する推奨事項: JavaScript ビデオ チュートリアル ]
以上がJavaScript の匿名関数に関する知識ポイントを要約して整理します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。