【发布时间】:2012-10-26 07:11:52
【问题描述】:
在 IE8 中测试一些 JavaScrpt 代码时,我在执行简单的 for..in 循环时遇到了一些奇怪的行为:
var categories = ['for', 'bar', 'steam'];
for(var key in categories) {
console.log(key);
}
输出:
0
1
2
forEach
map
filter
reduce
indexOf
end
其中包括 Array 原型函数,对吧?这绝对不是它应该工作的方式。这是为什么呢?
顺便说一句,将循环更改为 for (var key=0; key < categories.length, key++) 时它当然可以工作。
【问题讨论】:
-
for...in符号用于迭代对象的属性。查看 MDN 上的第二个警告:developer.mozilla.org/en-US/docs/JavaScript/Reference/… -
感谢大家这么快的回答并解决了问题!
标签: javascript for-loop internet-explorer-8