个性化阅读
专注于IT技术分析

为什么在JavaScript中不推荐使用for…in?

有人说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
*/
赞(0)
未经允许不得转载:srcmini » 为什么在JavaScript中不推荐使用for…in?

评论 抢沙发

评论前必须登录!