1. 関数内で仮パラメータを定義するが実パラメータを渡さないことは、変数を定義するが値を代入しないことと同等であるため、以下の a は未定義です
1 function test(a){2 console.log(a)//undefined3 };4 test();
2 IIFE では、ウィンドウは an として渡されます。実際のパラメータを使用すると、コードを実行するたびにウィンドウをグローバルに検索する必要がなくなり、効率が向上します。しかし、なぜ仮パラメータに未定義を指定する必要があるのでしょうか? 上で述べたように、関数内で仮パラメータを定義することは、定義することと同じです。ただし、値を割り当てていない場合、この即時実行関数では undefinde がまだ未定義です。そのため、undefined の値をグローバルに変更しても、この自己実行関数では unknown には影響しません。ただし、Chrome 59 以降および Firefox 53 以降では、unknown の変更は許可されず、すべての出力が変更されます。は未定義です。 IE8 では、未定義の値を変更でき、出力は 8 と未定義であるため、仮パラメータを渡すことで、外部で変更された変数がさまざまなブラウザの内部関数に与える影響を最大限に保証できます。 IIFE の前に括弧がなければなりません。そうしないとエラーが報告されます。
以上が関数内で仮パラメータを定義するが実際のパラメータは渡さないチュートリアルの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。