ホームページ > ウェブフロントエンド > jsチュートリアル > javascript_javascript スキルにおける関数宣言と関数式の違いの簡単な分析

javascript_javascript スキルにおける関数宣言と関数式の違いの簡単な分析

WBOY
リリース: 2016-05-16 16:13:53
オリジナル
993 人が閲覧しました

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 エラーは、関数が条件で宣言されているため、オブジェクトが欠落していることを示します。これは関数宣言の原則に違反します。

関数式のスコープ:

関数式で宣言された関数に関数名がある場合、その関数名は関数のローカル変数と同等であり、関数内でのみ呼び出すことができます。例:

コードをコピーします コードは次のとおりです: var f = 関数 fat(x) {
If (x return 1;
                                                                                                                                                                                                                                                                                                         return x*fact(x-1);
};
// キャッチされない ReferenceError: ファクトが定義されていません



fact() は関数内で呼び出すことができますが、関数の外で呼び出すと、エラーが報告されます:「fact は未定義です」
以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート