可能性の重複:...forループの中でイテレータを宣言する必要はありますか?
for(var i=0;i<4;i++)
を:
Variable scope in Javascript for loop
for(i=0;i<4;i++){
}
私が言う必要があるのですか?
それ以外のものはグローバルになるでしょうか?
可能性の重複:...forループの中でイテレータを宣言する必要はありますか?
for(var i=0;i<4;i++)
を:
Variable scope in Javascript for loop
for(i=0;i<4;i++){
}
私が言う必要があるのですか?
それ以外のものはグローバルになるでしょうか?
ので
> function test1() {
... for(var j=0;j<4;j++){
... console.log(j);
... }
... }
> test1()
0
1
2
3
> console.log(j);
ReferenceError: j is not defined
var
でvar
m-racoon:~ mkotsur$ node
> function test() {
... for(i=0;i<4;i++){
... console.log(i);
... }
... }
> test();
0
1
2
3
> console.log(i);
4
がなければ、答え:はい。
あなたは正しいです。 forループで変数を宣言しないと、前に宣言された変数 "i"を参照しているとみなされます。変数がすでに宣言されていない場合は、エラーが発生します。 forループでイテレータを宣言することが最善です。
forステートメント内で宣言する理由は、このステートメントがステートメントにスコープされているためです。あなたが声明の外側にそれを必要としない限り、それは理想的です。 for文の外側に必要な場合は、Sayemsの手法を使用する必要があります。 –
@SchroedingersCat:JavaScriptにブロックスコープがありません。どこに宣言しても、変数は関数全体でアクセス可能です。 – Jon
@jonそれから私はそれを取り戻す。私はC#でそれらをやっているように私はjsで仕事をする傾向があるので、あまり混乱しないで、いくつかの理由が同じであると仮定します。 –