modを使って私の質問をより良くすることができれば、簡単に例を挙げることなくこれを尋ねるのは難しいので、私は感謝しています。ここで私が作成した関数である:あなたが見ることができるように私の変数は、なぜvar宣言の中にあるときに 'var'宣言が必要なのですか?
$("#myField").on('keyup', function(event){
var input = $(this),
val = input.val(),
inputGroup = input.parents('div.input-group')
searchingIcon = $(inputGroup).find('i.auto-spinner'),
button = $(inputGroup).find('span.input-group-btn > button.btn'),
key = event.which,
typingTimer; // This throws an error typingTimer is not defined
//Clear typing timeout on keypress
clearTimeout(typingTimer);
//.... more code below.. not important
});
が、私は私が得る、私はtypingTimerに到達したとき、この場合には、しかし、コンマに続く1つの簡単なのvar宣言で私のVARSを宣言したいです空の変数を定義するのではなく、変数を探しているかのように、未定義のvarエラーが発生します。私が単にこれに変更する場合:
$("#myField").on('keyup', function(event){
var input = $(this),
val = input.val(),
inputGroup = input.parents('div.input-group')
searchingIcon = $(inputGroup).find('i.auto-spinner'),
button = $(inputGroup).find('span.input-group-btn > button.btn'),
key = event.which;
var typingTimer; // All is well again...
//Clear typing timeout on keypress
clearTimeout(typingTimer);
//.... more code below.. not important
});
すべて正常に動作します。私がこの現象を経験したのはこれが初めてではありません。私は本当にその原因を知りません。 (;)で区切られていない変数を定義する方法にはいくつかの制限がありますか?
'inputGroup'宣言の後にコンマがないため、その行の後にセミコロンが自動的に挿入されます。したがって、以降のすべての割り当ては宣言ではありません。それらは単に既存の変数(またはその名前の変数が存在しない場合は暗黙のグローバル変数)への代入です。私はタイプミスとしてこれを閉じるのか、他の人がこの同じタイプミスをするかもしれないので答えるかどうか分からないのですか? – apsillers
_「この現象を初めて経験したわけではありません」_:おそらくあなたのヴァールを宣言する方法の変更に時間がかかるでしょうか? – Andy
確かに。それは現象ではなく、間違ったコードです。 – Stuart