js的for in循环和java里的foreach循环的区别

来源:互联网 发布:java人才培训中心 编辑:程序博客网 时间:2024/05/17 22:55

 449人阅读 评论(0) 收藏 举报

    js里的for in循环定义如下:

    for(var variable in obj) { ... }

    obj可以是一个普通的js对象或者一个数组。如果obj是js对象,那么variable在遍历中得到的是对象的属性的名字,而不是属性对应的值。如果obj是数组,那么variable在遍历中得到的是数组的下标。

    遍历对象实验:

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
  1. var v = {};  
  2. v.field1 = "a";  
  3. v.field2 = "b";  
  4. for(var v in v) {  
  5.     console.log(v);  
  6. }  
  7.   
  8. 控制台下输出:  
  9. field1   
  10. field2   
    遍历数组实验:

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
  1. var mycars = new Array()  
  2. mycars[0] = "Saab"  
  3. mycars[1] = "Volvo"  
  4. mycars[2] = "BMW"  
  5.   
  6. for (var x in mycars){  
  7.   console.log(x);  
  8. }  
  9.   
  10. 控制台输出:  
  11. 0   
  12. 1  
  13. 2   
    拿java的foreach循环来做对比,有两大差别。首先java的foreach循环不会去枚举一个java对象的属性。其次,java的foreach循环枚举一个数组或者任何实现了Iterable接口的对象的时候,for(Object o : list), 对象o得到的是list一个元素,而非在列表中的下标。

    java的遍历代码就不贴出来了。经常写后台代码,foreach循环很熟悉。写前台js代码的时候,难免会套用java的语法,所以第一次用js的for in循环的时候犯错了。这次总结清楚,以后就不会犯错误了。

0 0
原创粉丝点击