javascript - for...of 循环语句如何在 Javascript 中工作?(ECMAScript 6)

标签 javascript loops ecmascript-6

我有一个片段,我正在对它试验 for...of 语句:

let arr = [3, 5, 7];
arr.foo = "hello";

for (let i in arr) {
   console.log(i); // logs "0", "1", "2", "foo"
}

for (let i of arr) {
   console.log(i); // logs "3", "5", "7"
}

我的问题是 for...of 应该在可迭代值上运行,对吧?那么为什么第二个 for 不打印 "hello"

最佳答案

数组是对其元素 的迭代。这就是它的定义方式。就是这样Array[Symbol.iterator]已实现。

参见 http://www.2ality.com/2015/02/es6-iteration.html .

关于javascript - for...of 循环语句如何在 Javascript 中工作?(ECMAScript 6),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31091263/

相关文章:

javascript - 如何为我的整个包启用严格模式但不为依赖启用?

javascript - nuxt-img 和 js 文件无法在服务器上的生产模式下加载

javascript - 我可以将 Angular Controller 和指令放在单独的 JS 文件中吗?

javascript - Unbreak my code - 如何在 javascript 的另一个函数中使用函数名作为参数

Python:迭代两个以列表为值的字典

javascript - 检查对象数组中是否存在具有特定键值的对象

javascript - 什么是名称冲突以及 ES6 符号如何避免属性之间的名称冲突?

Javascript/jquery 将字符串转换为日期时间(使用 javascript 中的新日期)以传递给 .net MVC

python - 在python中循环选项菜单selenium

swift - 数组与偏移量对自身执行异或