javascript - 我对 for 循环中的 javascript let 和 var 感到困惑?

标签 javascript for-loop scope var let

<分区>

这是我的循环代码

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

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

请任何人帮助我理解这个概念。我是新手,正在努力弄清楚:)

感谢您的帮助。

最佳答案

当您使用 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 将创建 block 作用域到函数作用域

关于javascript - 我对 for 循环中的 javascript let 和 var 感到困惑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40519064/

相关文章:

javascript - ajax 回调函数的奇怪行为

python - 了解 Python 闭包

javascript - 如何调用 $(document).ready() 中声明的函数?

javascript - 使用 xmlhttp.open 获取 2 个不同的 url

javascript - 通过单击获取按钮提交表单

javascript - Mongodb 查询 - 和条件

matlab - 向量化 MATLAB 循环

JavaScript 正则表达式 : Format string with dynamic length to block format

Javascript Array[i] 作为循环中的条件

Java告诉我charAt方法是一个变量?