let in for循环是如何工作的

How does let in for loop work?

本文关键字:工作 何工作 in for 循环 let      更新时间:2023-09-26
var messages = ["Check!", "This!", "Out!"];
for (var i = 0; i < messages.length; i++) {
  setTimeout(function () {
    console.log(messages[i]);
  }, i * 1500);
}
// -> prints 3* undefined

for (let i = 0; i < messages.length; i++) {
  setTimeout(function () {
    console.log(messages[i]);
  }, i * 1500);
}
// -> prints out the array

我理解"var"是如何工作的,我很习惯它-作用域是功能性的。然而,let声明远不清楚。我明白它有块范围,但为什么这在例子中很重要?在这个例子中,for循环在两种情况下都运行了很长时间。为什么让我们打印出数组?

let允许您声明范围限制在使用它的块、语句或表达式。这与var关键字,它在全局或局部定义一个变量

在这里查看更多详细信息https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/let