JavaScript では、関数を定義するさまざまな方法があります。 function foo() {} と var foo = function() { } は、関数を定義する 2 つの異なる方法です。どちらの方法にもそれぞれ利点があり、使用例も異なりますが、関数を実行するとどちらも同じ結果が得られます。
それでは、このチュートリアルでは、関数を定義する 2 つの方法の違いについて説明します。
function foo() { } は、JavaScript で関数を宣言する通常の方法であり、すべての初心者と開発者によって使用されます。あるいは、名前付き関数と呼ぶこともできます。
プログラムの実行制御が関数宣言のスコープに到達すると、JavaScript は関数宣言を評価します。関数宣言の評価は段階的なプロセスの一部ではありませんが、最初に評価されます。
さらに、関数宣言は、それが宣言されている特定のスコープ内のすべてのコードの先頭に巻き上げられます。したがって、宣言前であっても、スコープ内のどこでも関数を呼び出すことができます。
###文法###上記の構文では、「function」は関数宣言を表すキーワード、foo は関数名です。
###例###この例では、関数宣言を通じて関数 foo() を定義します。その後は、通常の関数と同様に呼び出します。
リーリー ###例###JavaScript は、実行フローがスコープに入って先頭に引き上げられるときに最初に関数を評価するため、宣言の前に foo() 関数を呼び出しました。
リーリーvar foo = function() { } は、関数を定義することと同じであり、関数式と呼ばれます。ここで、 function() { } は、 foo 変数に格納する関数式です。 foo は他の変数と同様に通常の変数ですが、foo 変数に数値や文字列を格納することもできます。
JavaScript は、関数宣言のように先頭で関数式を評価しません。関数式を段階的に評価します。実行フローが関数式に到達すると、JavaScript はその式を評価し、それを foo 変数に格納します。
ユーザーは関数式を使用して、次の構文に従って関数を定義できます。
リーリー上記の構文では、関数定義に名前がないため、それを匿名関数と呼ぶことができます。 foo 変数を関数の識別子として使用できます。
###例###この例では、関数式を使用して関数を定義し、それを foo 識別子の中に格納しました。その後、foo 識別子を使用して、その中に格納されている関数式を呼び出し、foo 識別子に引数を渡します。
リーリーこの例では、関数式を引数として sort() メソッドに渡します。ユーザーは、名前付きの宣言を記述する代わりに、匿名関数をパラメータとして渡していることがわかります。
リーリーfunction foo() { } と var foo = function() { }
の違い
| これは関数式です。
|
---|---|
| スコープ内で昇格されません。
|
| JavaScript は、コードをステップ実行しながらコードを評価します。
|
| これは、保存されている識別子を使用して識別できます。
|
| 関数をパラメータとして渡す必要がある場合、または関数をクロージャとして使用する必要がある場合に使用します。
|
以上がfunction foo() {} と var foo = function() {} の foo の使用法の違いを説明するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。