js一个简单的for循环为什么key会把__proto__里面的函数给循环出来?

龙上 发布于 2016/06/16 09:19
阅读 493
收藏 0

js一个简单的for循环为什么key会把__proto__里面的函数给循环出来?

//代码就这样简单,
var b = [0]
//这个会循环出第二个key然后就会出现kr = each这个函数的情况
for(var kr in b)
{
}



加载中
0
Leonds
Leonds
http://www.w3school.com.cn/js/js_loop_for_in.asp  去看看for ... in的用法
0
OSC首席键客
OSC首席键客
这种要用for取取,用for in是这样的。
0
b
beastxiao

这个each是你引用了其他代码导致的,估计别人扩展了Array而你没注意。要过滤掉也会简单:

var b=[0];
for(var kr in b){ 

  if(b.hasOwnProperty(kr)){

    console.log(kr);  

  }

}

这样就不会有each了。。。但是并不推荐你这样遍历数组

0
zabcd117
zabcd117
这就是为什么es6会出来for of的原因
0
mark35
mark35

我一般是这样

for(var x in b)
{
  if ( ! b.hasOwnProperty(x)) {
    continue;
  }
  // do
}



对于数组可以用ES5的forEach()函数来迭代


0
hyjiacan
hyjiacan

建议看书

《编写高质量Javascript的68个方法》

里面的 第五章  第45条、第49条

  

0
insights
insights

如果你和我一样屌,又不怕领导p,可以用for of .哈哈哈哈哈.


返回顶部
顶部