【问题标题】:How does let in for loop work? [duplicate]let in for 循环是如何工作的? [复制]
【发布时间】:2015-10-25 22:50:20
【问题描述】:
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”的工作原理,并且已经习惯了 - 作用域是功能性的。然而,让声明远非明确。我知道它有块范围,但为什么这在示例中很重要?在该示例中,for 循环在这两种情况下都存在很长时间。为什么 let 打印出数组?

【问题讨论】:

标签: javascript scope var let


【解决方案1】:

let 允许您声明范围受限的变量 使用它的块、语句或表达式。这不像 var 关键字,它在全局范围内或本地定义一个变量 整个函数与块范围无关。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-24
    • 2014-05-08
    • 1970-01-01
    • 2016-05-13
    • 2011-10-28
    • 2023-04-07
    • 2015-11-01
    • 1970-01-01
    相关资源
    最近更新 更多