为什么在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

*/

以上是 为什么在JavaScript中不推荐使用for&#8230;in? 的全部内容, 来源链接: www.h5w3.com/199986.html

回到顶部