この記事では、JavaScript 関数定義に関する一般的な問題をまとめています。初心者が陥りやすい間違いが含まれています。皆さんの参考に共有してください。具体的な概要は次のとおりです。
1. 関数が宣言されると、JS エンジンは関数名と同じ名前の変数も定義します。この関数を呼び出すと、実際にはこの変数が使用され、関数が宣言される前に呼び出すことができます。 、
などfoo(); //这里实际上是使用了一函数变量 function foo() { alert('hello'); }
2. 関数式 このとき、この変数は
のように変数に代入して使用する必要があります。foo(); //报错,未定义 var foo = function() { alert('hello'); }
3. 関数式 (関数名付き)。現時点では、関数名は
などの非 IE ブラウザーでのみ内部的に使用できます。bar(5); //报错,未定义 var bar = function foo(n) { if (n == 1) return 1; else return n * foo(n - 1); } foo(5); //非IE报错,未定义 bar(5); //正确
4. Function コンストラクターを使用して定義します。この方法は、関数が実行されるたびに関数本体が解析されます。さらに、この方法で宣言された関数は、現在の宣言位置のスコープを継承しません。デフォルトでは、
などのグローバル スコープのみを持ちます。function foo() { var bar = 'hello'; return Function('alert(bar)'); //报错,全局变量bar未定义 } foo()();
この記事で説明されている内容は、JavaScript WEB プログラミングを学習するすべての人にとって一定の参考価値があると信じています。