我已经看到很多问题建议使用:
for (var i = 0; i < myArray.length; i++){ /* ... */ }
代替:
for (var i in myArray){ /* ... */ }
对于数组,由于迭代不一致(请参阅此处)。
但是,我似乎找不到任何似乎更喜欢面向对象循环的东西:
myArray.forEach(function(item, index){ /* ... */ });
这对我来说似乎更直观。
对于我当前的项目,IE8 兼容性很重要,我正在考虑使用Mozilla 的 polyfill,但是我不是 100% 确定这将如何工作。
- 标准 for 循环(上面的第一个示例)和现代浏览器的 Array.prototype.forEach 实现之间有什么区别吗?
- 现代浏览器实现与上面链接的 Mozilla 实现之间有什么区别(特别是 IE8)?
- 性能不是一个问题,只是与迭代哪些属性的一致性。