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
提交
取消