在IE8中测试一些JavaScript代码时,我在执行简单的for..in循环时遇到了一些奇怪的行为:
var categories = ['for', 'bar', 'steam'];
for(var key in categories) {
console.log(key);
}
输出:
0
1
2
forEach
map
filter
reduce
indexOf
end
这包括数组原型函数,对吧?这绝不是它应该工作的方式。为什么会这样呢?
顺便说一下,当将循环更改为for (var key=0; key < categories.length, key++)
时,它当然可以工作。
for...in
符号用于遍历对象的属性。请参考 MDN 上的第二个警告:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/for...in。 - Blender