问个简单的JS问题

var x1 = 0;
for(var i=0;i<2;i++){
console.log("x"+i);
}
我的设想,在i循环到1的时候
怎么才能把上面定义的x1 = 0的值打印出来。现在打印出来的全部是x1,不是上面的值。JS新手

阅读 2.5k
4 个回答
  var x1 = 0;
  for(var i = 0;i < 2;i++){
      console.log(eval('x' + 1));
    }
var x1 = 0;
for(var i=0;i<2;i++){
   if(i === 1){
     console.log(x1)
   }
}

那就看你 x1 这个变量是放在哪里的了,如果是上面那段代码,直接在 window 上面 var x1 = 0 的话,

for (var i = 0; i < 2; i++) {
    console.log(window['x' + i])
}

其实就是用到了对象的方括号检索

作用域和闭包

for(var i=0; i<2;i++){
   (function (x) {
        console.log("x"+ x)
   })(i)
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题