for循环是JavaScript中经常使用的基础点。为了更好的使用for循环,我们需要了解更多for循环的相关知识。
1、在双重嵌套的for循环中,若外层和内层循环声明的变量相同(同一变量),则内层循环的变量初始化时会改变外层循环相同变量名的变量的值。
例如:外层循环的第一次执行完毕后,内层循环将变量i的值变为19,导致外层循环不再执行。
for(var i=0; i<10; i++){
console.log("i1=" + i);
for(var i=11; i<20; i++){
console.log("i2=" + i);
}
}
内层循环执行完毕,变量i的值都为8,导致死循环。
for(var i=0; i<10; i++){
console.log("i1=" + i);
for(var i=5; i<8; i++){
console.log("i2=" + i);
}
}
所以,通常情况下应该尽量避免内外层循环声明相同变量名的变量。
2、当for循环中有多个判断条件时,若多个判断条件以‘,’分隔时,以最后一个判断条件的结果为准
var b = true;
for(var i=0; i<10, b; i++){ //以b的结果为准
console.log(i);
}
若多个判断条件以‘&&’分隔时,以多个判断条件的结果为准。
for(var i=0; i<0 && b; i++){
console.log(i);
}
3、JavaScript没有块级作用域。一个函数中,在for循环中声明的变量可以在for循环外直接使用。
for(var i=0; i<10; i++){
console.log(i);
}
console.log(i); //9
在Java中有块级作用域,for循环中声明的变量在for循环外不可以直接使用。