関数宣言の 2 つの形式の違い

yulia
yuliaオリジナル
2018-09-08 16:49:022017ブラウズ

キーワード function は関数を定義するために使用されることを知っています。関数定義は関数定義式またはステートメントの形式で記述できます。たとえば、次の 2 つの書き方

var f = function(x){return x+1;}   //将表达式赋值给一个变量  函数表达式
function f(x){return x+1;}         //含有变量的语句        函数声明

関数宣言文と関数定義式には同じ関数名が含まれていますが、それでも違いがあります。
類似点: どちらのメソッドも新しい関数オブジェクトを作成します。どちらも「詳細」になります (関数ステートメントで定義された関数は、スクリプトまたは関数の先頭に表示され、スクリプト全体で表示されます)。関数宣言ステートメント内の関数名は変数名であり、変数は関数オブジェクトを指します。 var を使用して変数を宣言する場合と同様、関数ステートメントで定義された関数はスクリプトまたは関数の先頭に表示されるため、スクリプト全体で参照できます。
1. var を使用すると、変数のみが事前に宣言されます。ただし、関数宣言ステートメントを使用する場合は、関数名と関数本体の両方が事前に指定されています
要約: 簡単に言えば、関数式メソッド (つまり、var 宣言メソッド) は、関数宣言ステートメントの後にのみ呼び出すことができます。 var ステートメントが宣言され、関数宣言 (つまり関数宣言メソッド) が宣言される前に関数を呼び出すことができます。
これらの状況は、関数の実行段階で関数式が変数 f に割り当てられているのに対し、コードの実行前、つまりコード解析段階で関数宣言が変数 f に割り当てられているためです。次のコード:

console.log(f,"函数前")
var f = function (x) {
      return x + 1;//函数表达式
 }
console.log(f,"函数后")

このコードの実行結果:

console.log(f,"函数前")
function f(x) {
   return x + 1;//函数声明
}
console.log(f,"函数后")
関数宣言の 2 つの形式の違い結果:

関数宣言の 2 つの形式の違い

以上が関数宣言の 2 つの形式の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。