我对javascript let和var in for循环感到困惑?

时间:2016-11-10 02:26:10

标签: javascript for-loop scope var let

这是我的循环代码

var username = ['Sam', 'Adarsh', 'Rohit', 'Rajat'];
for(var i in username){
  console.log(username[i]);
}

它根据需要输出相同的但是我不确定为什么需要声明。我理解VAR和LET的概念但不确定在哪些情况下var会在for循环中产生问题?

任何身体都可以帮助我理解这个概念。我是新的菜鸟并试图找出:)

感谢您的帮助。

1 个答案:

答案 0 :(得分:10)

使用var时:

var username = ['Sam', 'Adarsh', 'Rohit', 'Rajat'];
for(var i in username){
  console.log(username[i]);
}
i // 3

使用let

var username = ['Sam', 'Adarsh', 'Rohit', 'Rajat'];
for(let i in username){
  console.log(username[i]);
}
i // Uncaught ReferenceError: i is not defined
ES6中的

let将创建块范围到功能范围