この記事では、JavaScript関数定義の一般的な問題をまとめています。初心者が犯した一般的な間違いが含まれています。参照のためにそれを共有してください。特定の要約は次のとおりです。
1。関数宣言と同時に、JSエンジンは、関数名と同じ名前の変数も定義します。この関数を呼び出すと、実際にこの変数を使用しています。たとえば、関数宣言の前に呼び出すことができます。
foo(); //ここで関数変数が実際に使用されますfunction foo(){alert( 'hello'); }2。関数式、この時点で、匿名関数は変数に割り当てられます。これは定義の後に使用する必要があります。
foo(); //エラーが報告されます、未定義のvar foo = function(){alert( 'hello'); }3。関数式(関数名付き)、この使用法は回避するのが最善です。現時点では、機能名は、たとえば、非IEブラウザでの内部でのみ利用可能です。
バー(5); //エラーが報告されます、未定義のvar bar = function foo(n){if(n == 1)return 1;それ以外の場合は、n * foo(n -1)を返します。 } foo(5); // IEエラーは報告されていません、未定義のバー(5); //正しい4。機能コンストラクターを使用して、この方法は非効率的です。関数が実行されるたびに、その関数本文は一度解析されます。さらに、このように宣言された関数は、現在宣言された場所の範囲を継承しません。たとえば、デフォルトではグローバルな範囲のみがあります。
function foo(){var bar = 'hello'; return function( 'alert(bar)'); //エラーが報告されています、グローバル変数バーは定義されていません} foo()();この記事の説明には、JavaScript Webプログラミングの全員が学習するための特定の参照値があると思います。