これまでのところ、関数宣言と関数式を区別していません。実際、パーサーは、データを実行環境にロードするときに、関数宣言と関数式を同等に扱いません。パーサーは、コードを実行する前に、まず関数宣言を読み取り、使用可能 (アクセス可能) にします。関数式については、パーサーがそれが配置されているコード行に到達するまで、実際には解釈され実行されません。次の例:
コードは次のとおりです:
alert(sum(10,10)); function sum(num1,num2) { return num1+num2; }
コードが開始される前であるため、上記のコードは正しく実行できます。実行時には、パーサーの関数宣言が読み取られ、関数宣言ホイスティングと呼ばれるプロセスを通じて実行環境に追加されます。コードを評価するとき、JavaScript エンジンは最初のパスで関数を宣言し、ソース ツリーの最上部に配置します。したがって、関数を宣言するコードがそれを呼び出すコードの後ろにある場合でも、JavaScript エンジンは関数宣言を先頭に引き上げることができます。以下の例のように、上記の関数宣言を等価な関数式に変更すると、実行時にエラーが発生します。
コードは次のとおりです。
alert(sum(10,10)); var sum=function(num1,num2) { return num1+num2; };
宣言中に変数を介して関数にアクセスできるという事実を除けば、関数宣言と関数式の構文は実際には同等です。 。 の。
注: var sum=function sum(){} のように、関数宣言と関数式を同時に呼び出すこともできます。ただし、この構文は Safari でエラーを引き起こします。
以上がこの記事の全内容です。JavaScript を学習する皆さんのお役に立てれば幸いです。
その他の関連チュートリアルについては、JavaScript チュートリアル
をご覧ください。