誰でもこのメッセージがの代わりに11
を記録する理由を教えていただけますか?JavaScriptループが予期せぬ結果を返します
function foo() {
function bar(a) {
i =3;
console.log(a + i);
}
for (var i=0; i<10; i++) {
bar(i *2);
//I know, infinite loop
}
}
foo();
i
がbar(){}
にハードコードされている場合は、ログインしてその結果が9すべきではありませんか?
これはScopeクラスの一部であり、私は紛失しています。
ありがとうございました。
おそらく 'i'が' bar'関数と 'for'ループの両方で使われていますか? –
@Rocketは、 'foo()'の先頭に 'i'の巻き上げを見逃しました。 –
はい、var i = 3と宣言して固定しました。代わりに。 –