var list = [8, 3, 11, 9, 6]
for (i in list) {
console.log(list[i]);
}
首先JavaScript引擎在进行上面循环的时候,执行循序并不保证是按顺序进行迭代;其次,数组的其他属性(例如:length)也可能参与迭代(在较老IE中会出现这种情况);最后,在上面的例子中,i的类型其实是字符串(string)而不是数字,如果在此进行一些数字操作判断,就得不到正确的结果了。
for in的正确用法其实是用于迭代对象的可枚举键,而不是用于迭代数组。
网友评论