JS関数の詳細な分析
今回は、JS 関数の詳細な分析をお届けします。関数宣言と関数式の違いは何ですか? JS関数を使用する際の注意点は何ですか? 以下に実際のケースを見てみましょう。
関数宣言と関数式の違いは何ですか(*)
関数宣言: function bar() {}
関数式: var fuc = foo(){}
1. Function bar はプログラム全体の前に実行されます。はホイスト(巻き上げ)されるため、指定されたバー関数のスコープ全体で使用できます。関数定義前に呼び出しても問題ありません。
2. 関数宣言の場合、関数の名前は必須ですが、関数式の場合はオプションです。そのため、匿名関数式と名前付き関数式が表示されます。
3 この関数内
var foo = function bar() { bar(); // Works}; bar(); // ReferenceError命名函数bar赋值给了变量foo,所以在函数声明外是不可见的,但在bar`函数内部仍然可以调用。这是因为Javascript对命名函数处理的机制,函数的名称永远在函数内部的作用域中有效。
変数宣言のプレフィックスは何ですか?関数宣言プレフィックス(**)とは
いわゆる変数宣言プレフィックスとは、スコープブロックでは、すべての変数がブロックの先頭で宣言されることを意味します。以下は 3 つのコードの例です:
コード 1:
var a = 1; function main() { console.log(a);//1 } main();//输出1`
コード 2:
1 var a = 1; 2 function main() { 3 console.log(a); 4 var a = 2; 5 } 6 main()//输出undefined
コード 3: コード 2 はなぜ未定義を出力するのですか
1 var a = 1; 2 function main() { 3 var a; 4 console.log(a); 5 a = 2; 6 }
関数の宣言プレフィックスは、全体をプロモートすることです。関数を現在のスコープに追加します。先頭 (前の変数宣言の後)。
var num = 1; console.log(doubleNum(num));//2 function doubleNum(num){ return num2;}
は
//函数的声明前置 var num; function doubleNum(num){ return num2;} num = 1; console.log(doubleNum(num));//2
argumentsと同等です (*)
argumentsとは配列のようなオブジェクトです。関数に渡されるパラメータのリストを表します。関数のすべてのパラメータは、引数オブジェクトを使用して関数内で取得できます。このオブジェクトは、関数に渡される各引数のエントリを作成します。エントリのインデックスは 0 から始まります。
関数のオーバーロード(**)の実装方法
は、引数の長さとパラメータの型によって実装できます。例:
function sumOfSquares(a, b, c){ if(arguments.length<3){ c = 0; } return aa+bb+c*c } sumOfSquares(2,3,4); // 29 sumOfSquares(1,3); // 10
即時実行関数式とは何ですか?何をするのか (***)
関数の即時実行は通常、次の 2 つの方法で記述されます:
(function(){...})();
(function(){...}() );// 使用をお勧めします
Javascript では、括弧「()」のペアは、関数名の後に関数の呼び出しを示す演算子です。
参考 - JavaScriptの即時実行関数
関数のスコープチェーンとは(****)
スコープとは、変数と関数のアクセス可能な範囲であり、変数と関数の可視性とライフサイクルを制御します。 JavaScript の変数にはグローバル スコープとローカル スコープがあります。
スコープ チェーンとは、コードが環境内で実行されるときに、実行環境がアクセスできる変数や関数に順序よくアクセスできるようにするために、変数オブジェクトのスコープ チェーン (スコープ チェーン、sc とは呼ばれません) が作成されます。スコープ内の最初のオブジェクトは常に、現在実行中のコードが配置されている環境の変数オブジェクト (VO) です
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、次の点に注目してください。その他の関連記事は PHP 中国語 Web サイトにあります。
関連書籍:
以上がJS関数の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Go 言語は、クロージャとリフレクションという 2 つの動的関数作成テクノロジを提供します。クロージャを使用すると、クロージャ スコープ内の変数にアクセスでき、リフレクションでは FuncOf 関数を使用して新しい関数を作成できます。これらのテクノロジーは、HTTP ルーターのカスタマイズ、高度にカスタマイズ可能なシステムの実装、プラグイン可能なコンポーネントの構築に役立ちます。

C++ 関数の名前付けでは、読みやすさを向上させ、エラーを減らし、リファクタリングを容易にするために、パラメーターの順序を考慮することが重要です。一般的なパラメータの順序規則には、アクション-オブジェクト、オブジェクト-アクション、意味論的な意味、および標準ライブラリへの準拠が含まれます。最適な順序は、関数の目的、パラメーターの種類、潜在的な混乱、および言語規約によって異なります。

効率的で保守しやすい Java 関数を作成するための鍵は、シンプルに保つことです。意味のある名前を付けてください。特殊な状況に対処します。適切な可視性を使用してください。

1. SUM 関数は、列またはセルのグループ内の数値を合計するために使用されます (例: =SUM(A1:J10))。 2. AVERAGE 関数は、列またはセルのグループ内の数値の平均を計算するために使用されます (例: =AVERAGE(A1:A10))。 3. COUNT 関数。列またはセルのグループ内の数値またはテキストの数をカウントするために使用されます。例: =COUNT(A1:A10)。 4. IF 関数。指定された条件に基づいて論理的な判断を行い、結果を返すために使用されます。対応する結果。

C++ 関数のデフォルト パラメーターの利点には、呼び出しの簡素化、可読性の向上、エラーの回避などがあります。欠点は、柔軟性が限られていることと、名前の制限があることです。可変引数パラメーターの利点には、無制限の柔軟性と動的バインディングが含まれます。欠点としては、複雑さの増大、暗黙的な型変換、デバッグの難しさなどが挙げられます。

C++ で参照型を返す関数の利点は次のとおりです。 パフォーマンスの向上: 参照による受け渡しによりオブジェクトのコピーが回避され、メモリと時間が節約されます。直接変更: 呼び出し元は、返された参照オブジェクトを再割り当てせずに直接変更できます。コードの簡素化: 参照渡しによりコードが簡素化され、追加の代入操作は必要ありません。

カスタム PHP 関数と定義済み関数の違いは次のとおりです。 スコープ: カスタム関数はその定義のスコープに限定されますが、事前定義関数はスクリプト全体からアクセスできます。定義方法: カスタム関数は function キーワードを使用して定義されますが、事前定義関数は PHP カーネルによって定義されます。パラメータの受け渡し: カスタム関数はパラメータを受け取りますが、事前定義された関数はパラメータを必要としない場合があります。拡張性: カスタム関数は必要に応じて作成できますが、事前定義された関数は組み込みで変更できません。

C++ の例外処理は、特定のエラー メッセージ、コンテキスト情報を提供し、エラーの種類に基づいてカスタム アクションを実行するカスタム例外クラスを通じて強化できます。 std::Exception から継承した例外クラスを定義して、特定のエラー情報を提供します。カスタム例外をスローするには、throw キーワードを使用します。 try-catch ブロックでdynamic_castを使用して、キャッチされた例外をカスタム例外タイプに変換します。実際の場合、open_file 関数は FileNotFoundException 例外をスローします。例外をキャッチして処理すると、より具体的なエラー メッセージが表示されます。
