javascript - JavaScript 中 "for(let item of iter)"和 '' for(iter 的项)"有什么区别

标签 javascript iterator

我经常使用“for of”语句来遍历迭代器,如下所示:

for(item of myIterator){
    console.log(item)
}

但是最近我发现官方的说法是:

for(let item of myIterator){
    console.log(item)
}

而且它们都执行正确,我想知道它们是否有什么区别。谢谢!

最佳答案

Let 是一个作用域变量,因此只能在其作用域 {} 内工作。

var myIterator = [0,1,2,3]

//non scoped variables works also out of for-loop, check
for(item of myIterator){
    console.log(item)
}

console.log(item)

上面的示例将打印所有项目,完成后,项目变量仍然是迭代的最后一个项目 现在再次尝试使用 let 作用域变量

//scoped variables works only inside for-loop instruction
for(let item2 of myIterator){
    console.log(item2)
}

console.log(item2)

现在 item2 不再可用,因为超出范围并且指令抛出错误。

关于javascript - JavaScript 中 "for(let item of iter)"和 '' for(iter 的项)"有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60477339/

相关文章:

javascript - 使用 jQuery 从 <td> 元素获取文本

c++ - 在函数中传递 ifstream 迭代器

c# - 为什么 c# 迭代器跟踪创建线程而不是使用互锁操作?

c++ - 映射/设置迭代器不兼容 - 检查对象是否在映射中

php - 使用 PHP RecursiveTreeIterator 构建日志读取器

javascript - 如何将 ajax $.get 值传递给 jQuery 中的另一个 $.get 函数?

javascript - 在react js应用程序上动态地将参数传递给Web服务

javascript - 在 Sizzle(CSS 选择器引擎)中解释一段疯狂的 JS 代码

javascript - jQuery getScript 问题

Java - 如何在键入时有效地显示单词列表中的单词