JavaScriptで関数を宣言するには、関数宣言と関数式の2つの方法があります。
違いは次のとおりです。
1)。関数によって宣言された方法によって定義される関数の場合、関数名は必要ですが、関数式の関数名はオプションです。
2)。関数によって宣言された方法によって定義された関数は、関数宣言の前に呼び出すことができますが、関数式の関数は宣言後にのみ呼び出されます。
3)。関数によって宣言された方法によって定義される関数は、実際の宣言ではありません。それらはグローバルに表示されるか、他の機能にネストされているだけですが、ループ、条件、または最後にキャッチ/キャッチ/キャッチすることはできません。
関数式はどこでも宣言できます。
以下は、関数を定義する2つの方法です。
コードコピーは次のとおりです。
//関数宣言式
関数グリーティング(){
console.log( "Hello World");
}
//関数式
var Greeting = function(){
console.log( "Hello World");
}
これが興味深いJavaScriptです:
コードコピーは次のとおりです。
function f(){console.log( '私は外側!'); }
(関数 () {
if(false){
//関数fを繰り返します
function f(){console.log( '私は中にいる!'); }
}
f();
}());
出力は何ですか?最初の反応は「私は外」でなければなりません。その結果、「I Am Inside」はChromeで出力され、IE11はエラーを直接報告し、Firefox出力の低いバージョン「I Am Atoutse」...
Chrome出力の結果は、関数宣言式で宣言された関数の特性を明確に反映しています - 宣言の前に関数は呼び出すことができます。
IEエラーは、関数宣言が条件にあるため、オブジェクトが欠落していることを示しており、関数宣言の原理に違反しています。
関数式の範囲:
関数式に宣言された関数に関数名がある場合、関数名は関数のローカル変数と同等であり、関数内でのみ呼び出すことができます。たとえば、栗:
コードコピーは次のとおりです。
var f = functionfact(x){
if(x <= 1)
返品1;
それ以外
x*fact(x-1)を返します。
};
alert(fact()); // cont covet referenceError:事実は定義されていません
fact()は関数内で呼び出すことができますが、関数の外部で呼び出されるとエラーが報告されます:事実は定義されていません
上記はこの記事のすべてです。あなたがそれを気に入ってくれることを願っています。