Javascript 关于…在循环中的混淆

Javascript 关于…在循环中的混淆,javascript,ecmascript-6,Javascript,Ecmascript 6,全部: [更新问题已解决]我这里的问题是: 因此,如果我使用“in”,func是索引号,而使用“of”则func是函数。 更多详细信息请参阅 这是我学习ES6的第一个小时,我想知道为什么我不能使用以下语法: for(func in funcs) { } 在: 迭代对象键。它从第一天起就一直使用JavaScript 我认为你把它和ES6混淆了,这是一个ES6特性,用于在包含数组的基础上循环 for(let func of funcs){ func(); } 谢谢,这对我来说是新知识!7分钟

全部:

[更新问题已解决]我这里的问题是: 因此,如果我使用“in”,func是索引号,而使用“of”则func是函数。 更多详细信息请参阅

这是我学习ES6的第一个小时,我想知道为什么我不能使用以下语法:

for(func in funcs) { }
在:

迭代对象键。它从第一天起就一直使用JavaScript

我认为你把它和ES6混淆了,这是一个ES6特性,用于在包含数组的基础上循环

for(let func of funcs){
  func();
}

谢谢,这对我来说是新知识!7分钟后我会接受的谢谢,现在我清楚了用法,所以如果我使用“in”,func是索引号,而使用“of”func是函数。是的,还有一些你不应该在数组中使用它<代码>用于。。。of没有同样的问题。关于这一点的另一个困惑是:我读到“let”可以防止重复声明相同的变量,但如果我将“let”放在for中,它仍然有效,这意味着每一轮循环,ES6将创建一个新的块来保存该轮中的特定func变量?我删除了注释,因为我认为它们有点混乱-本文应该澄清:-)。您是指of的
<中的代码>的含义仍然与中的相同ES5@Bergi谢谢,是的,那是我应该用的。结果是我混合了它们的用法。
Uncaught TypeError: func is not a function
for(let func of funcs){
  func();
}