JavaScript で関数を宣言するには、関数宣言と関数式の 2 つの方法があります。
相違点は次のとおりです:
1). 関数宣言で定義された関数の場合、関数名は必須ですが、関数式の関数名はオプションです。
2). 関数宣言で定義された関数の場合、その関数は関数宣言の前に呼び出すことができますが、関数式の関数は宣言の後にのみ呼び出すことができます。
3). 関数宣言で定義された関数は、実際の宣言ではなく、グローバルに出現するか、他の関数内にネストされるだけですが、ループ、条件、try/catch/finally in、および
には出現できません。
関数式はどこでも宣言できます。
関数は以下の 2 つの方法で定義されます:
//関数宣言
関数greeting(){
console.log("こんにちは");
}
//関数式
vargreeting = function(){
console.log("こんにちは");
}
以下の興味深い JavaScript:
function f() { console.log('私は外にいる!');
(関数() {
if(false) {
// 関数 f
の宣言を繰り返します
Function f() { console.log('私は中にいます!') }
}
f();
}());
最初の反応は「私は外にいます」であるはずです。結果は、Chrome では「私は中にいます」ですが、IE11 では直接エラーが報告され、Firefox の以前のバージョンでは「私は外にいます」と出力されます。 .
Chrome によって出力された結果は、関数宣言を使用して宣言された関数の特性を明確に反映しています。関数は宣言される前に呼び出すことができます。
IE エラーは、関数が条件で宣言されているため、オブジェクトが欠落していることを示します。これは関数宣言の原則に違反します。
関数式のスコープ:
関数式で宣言された関数に関数名がある場合、その関数名は関数のローカル変数と同等であり、関数内でのみ呼び出すことができます。例: 。
If (x
return 1;
return x*fact(x-1);
};
// キャッチされない ReferenceError: ファクトが定義されていません
fact() は関数内で呼び出すことができますが、関数の外で呼び出すと、エラーが報告されます:「fact は未定義です」
以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。