ホームページ >ウェブフロントエンド >jsチュートリアル >function foo() {} と var foo = function() {} の foo の使用法の違いを説明する

function foo() {} と var foo = function() {} の foo の使用法の違いを説明する

王林
王林転載
2023-09-14 20:13:091211ブラウズ

解释一下 function foo() {} 和 var foo = function() {} 在 foo 用法上的区别

JavaScript では、関数を定義するさまざまな方法があります。 function foo() {} と var foo = function() { } は、関数を定義する 2 つの異なる方法です。どちらの方法にもそれぞれ利点があり、使用例も異なりますが、関数を実行するとどちらも同じ結果が得られます。

それでは、このチュートリアルでは、関数を定義する 2 つの方法の違いについて説明します。

関数 foo() { } の説明: 関数宣言

function foo() { } は、JavaScript で関数を宣言する通常の方法であり、すべての初心者と開発者によって使用されます。あるいは、名前付き関数と呼ぶこともできます。

プログラムの実行制御が関数宣言のスコープに到達すると、JavaScript は関数宣言を評価します。関数宣言の評価は段階的なプロセスの一部ではありませんが、最初に評価されます。

さらに、関数宣言は、それが宣言されている特定のスコープ内のすべてのコードの先頭に巻き上げられます。したがって、宣言前であっても、スコープ内のどこでも関数を呼び出すことができます。

###文法###

ユーザーは次の構文に従って関数を宣言できます。

リーリー

上記の構文では、「function」は関数宣言を表すキーワード、foo は関数名です。

###例###

この例では、関数宣言を通じて関数 foo() を定義します。その後は、通常の関数と同様に呼び出します。

リーリー ###例###

以下の例では、パラメーターを使用して関数を定義します。関数の呼び出し元の位置を表す invokedPosition を 2 番目の引数として渡します。

JavaScript は、実行フローがスコープに入って先頭に引き上げられるときに最初に関数を評価するため、宣言の前に foo() 関数を呼び出しました。

リーリー

var foo = function() { }: 関数式の説明

var foo = function() { } は、関数を定義することと同じであり、関数式と呼ばれます。ここで、 function() { } は、 foo 変数に格納する関数式です。 foo は他の変数と同様に通常の変数ですが、foo 変数に数値や文字列を格納することもできます。

JavaScript は、関数宣言のように先頭で関数式を評価しません。関数式を段階的に評価します。実行フローが関数式に到達すると、JavaScript はその式を評価し、それを foo 変数に格納します。

さらに、関数式はコードの先頭にホイストされないため、関数宣言のように定義する前に関数式を呼び出すことはできません。

###文法###

ユーザーは関数式を使用して、次の構文に従って関数を定義できます。

リーリー

上記の構文では、関数定義に名前がないため、それを匿名関数と呼ぶことができます。 foo 変数を関数の識別子として使用できます。

###例###

この例では、関数式を使用して関数を定義し、それを foo 識別子の中に格納しました。その後、foo 識別子を使用して、その中に格納されている関数式を呼び出し、foo 識別子に引数を渡します。

リーリー

関数式にはさまざまな使用例があります。ユーザーは、コールバック関数として使用する関数の短い構文を作成できます。また、クロージャ機能としても利用できます。場合によっては、関数をパラメータとして渡す必要がある場合、関数式を使用できます。

###例###

この例では、関数式を引数として sort() メソッドに渡します。ユーザーは、名前付きの宣言を記述する代わりに、匿名関数をパラメータとして渡していることがわかります。

リーリー

function foo() { } と var foo = function() { }

の違い

次の表は、function foo() { } と var foo = function() { }:

の主な違いを示しています。

関数 foo() { }

var foo = function() { }

これは関数宣言です。 これは関数式です。 スコープの上部から吊り下げられています。 スコープ内で昇格されません。 JavaScript は、実行の開始時にスコープを評価します。 JavaScript は、コードをステップ実行しながらコードを評価します。 関数名で識別できます。 これは、保存されている識別子を使用して識別できます。 は通常の関数を定義するために使用されます。 関数をパラメータとして渡す必要がある場合、または関数をクロージャとして使用する必要がある場合に使用します。 ###結論は###

JavaScript では、関数を定義する方法が 2 つあります。

関数宣言

関数式です。関数宣言は、function キーワードとそれに続く関数名を使用して定義され、通常は function foo() {} のように記述されます。プログラムの実行が関数が宣言されているスコープに到達すると、JavaScript は関数宣言を評価し、そのスコープ内のコードの先頭に関数宣言をホイストします。これは、宣言される前にそれらを呼び出すことができることを意味します。 関数式は変数を使用して定義され、通常は var

foo = function() {}

のように記述されます。関数式はホイストされないため、呼び出す前に定義する必要があります。関数宣言と関数式は同じタスクを実行できますが、構文と計算動作が異なります。

以上がfunction foo() {} と var foo = function() {} の foo の使用法の違いを説明するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。