6 回答
已采纳
qq_安安_17
TA贡献49条经验 获得超52个赞
for(var i=0;i<5;i++){ //在方法内,用var声明了一个局部变量。方法结束,变量自动销毁。
//do sth
}
for(i=0;i<5;i++){ /*在方法内,没有用var声明i。声明了一个全局变量,
//do sth 方法内外都有效。但这种声明方法不提倡*/
}
//最好改为
var i;
for(i=0;i<5;i++){
//do sth
}希望可以帮助你
WingMeng
TA贡献32条经验 获得超13个赞
使用 var 声明的变量会自动被添加到最近的执行环境中。在函数内部,这个环境就是函数的局部环境,如果是外部,该变量就是全局变量,类似于不用 var 声明的变量。例如:
for (var i = 0; i < 5; i++) { // i 是全局变量
// do something
}
function func() {
for (var j = 0; j < 5; j++) { // j 是 func 函数内的局部变量
// do something
}
for (k = 0; k < 5; k++) { // k 是全局变量
// do something
}
}
console.log(i); // 5
console.log(k); // 5
console.log(j); // 报错:j 未定义在JS严格模式下,未声明的变量会报错。
橋本奈奈未
TA贡献436条经验 获得超108个赞
你是想问把var 放for里和外面的区别吗?如果是的话,那么我的回答是,只是位置不同而已,var声明存在变量提升,也就是说在for里var一个变量等同于在外面声明(ps:赋值操作扔在原代码位置),在for里声明变量只是习惯上的写法,本意是想声明局部变量(仅在for语句内可见),虽然并没有达到效果。ES6新增了let和const声明就可以实现定义局部变量
添加回答
举报
0/150
提交
取消
