js的for用var定义的循环变量,由于for循环并不是一个函数体,所以这个循环变量作用域是for循环所在的整个函数体,是局部变量。
var k= 0;
for(var i =0; i<10;i++){
}
此处的i与k平级。作用域在他们外面的函数体内。
es6支持let变量,只作用于for循环体内。例如:
for(let i=0;i<10;i++){
}
java的for用int定义的循环变量,只作用于for循环内,在for循环外引用将报错。因为循环变量在for循环结束时就被调用栈回收了。
for(int i=0;i<10;i++){
}