有人说JavaScript中不推荐使用for…in,为什么不推荐使用呢?
理由如下:
不妨看看下面代码的输出:
var a = [];
a[5] = 5;
for (var i = 0; i < a.length; i++) {
console.log(a[i]);
}
/* 输出结果:
undefined
undefined
undefined
undefined
undefined
5
*/
如果你使用for…in,情况如下:
var a = [];
a[5] = 5;
for (var x in a) {
console.log(x);
}
/* 输出结果:
5
*/
还要考虑JavaScript库可能会做这样的事情,这会影响你创建的任何数组:
Array.prototype.foo = 1;
var a = [1, 2, 3, 4, 5];
for (var x in a){
console.log(x);
}
/* 输出结果:
0
1
2
3
4
foo
*/
评论前必须登录!
注册