在js中for in的用法
来源:互联网 发布:nginx过滤url ip限制 编辑:程序博客网 时间:2024/05/13 06:50
for(var el in a){
}
这个就是穷举出a中的所有元素,当然上面这个例子是可以用
for(var i=0,len=a.length;i<len;i++){
}
这种方式进行循环列出的,不过有时候这种方式就不一定奏效了。
var a = {"first":1,"second":2,"third":3};
这个时候就只能用for in来穷举了。
一个对象是否可以进行for in穷举,我们可以通过propertyIsEnumerable属性来判断,说明如下:
返回 Boolean 值,指出所指定的属性是否为一个对象的一部分以及该属性是否是可列举的。
object
如果 proName 存在于 object 中且可以使用一个 For…In 循环穷举出来,那么 propertyIsEnumerable 属性返回 true。如果 object 不具有所指定的属性或者所指定的属性不是可列举的,那么 propertyIsEnumerable 属性返回 false。典型地,预定义的属性不是可列举的,而用户定义的属性总是可列举的。
--------------------
javascript 中for in 和 for each in的用法和区别
区别一: for in是javascript 1.0 中发布的。 for each in是作为E4X标准的一部分在javascript 1.6中发布的,而它不是ECMAScript标准的一部分。 这将意味着存在各种浏览器的兼容性问题。for each in,对很多浏览器都不支持的。例如是不支持IE6,IE7,IE8等浏览器的。
区别二:
例:
var 长方形= { 高:"15", 宽:"25" }; for (var i in 长方形){ alert( i + "," + 长方形[i] ); }
结果依次是:
结果依次是: 高,15 ; 宽,25 ; for each (var i in 长方形){ alert( i + "," + 长方形[i] ); }
结果依次是: 15, undefined ; 25, undefined;
两种遍历方法的变量i的值是不一样的,for each in无法获得对象的属性名,只能获取到属性值。
最后总结一下使用建议:
(1)遍历普通数组,建议使用原生的遍历方法for,不要贪图方便,因为for in 和for each in均存在浏览器的兼容问题,不能保证它们对数组的遍历顺序(如果对顺序的不作要求的话,可以使用for in ,但本人不建议),有兴趣话,可以阅读《for in 的浏览器兼容问题》。
(2)遍历对象,由于for没办法提供理想的遍历,因而只能选择其他方法。这里建议使用for in ,从上面讲解的区别,for in比for each 更具优势,for in能获取索引和属性值,而for each只能获取属性值,而且for each在很多低版本的浏览器是不支持。
来源: http://blog.sina.com.cn/s/blog_855dfd9e0101a2w0.html
- 在js中for in的用法
- 在js中for in的用法
- 在js中for in的用法
- 在js中for in的用法
- js中for in的用法
- js中for in的用法解析
- js 中for in的用法
- js中for in 的用法
- js中for in 的用法
- 在js中循环语句for in和for的用法
- js中for in 和 for each in的用法和区别
- js中for in 和 for each in的用法和区别
- js中for in 和 for each in的用法和区别
- js笔记一:js中forEach,for in,for of循环的用法
- js的中for in
- js中for in 和 for each in的使用
- js中for in
- js中的for in 用法
- java 虚拟机--新生代与老年代GC
- 程序员必须知道的10大基础实用算法及其讲解(1)
- pat1020. Tree Traversals (25)
- windows之UIAutomation的UI元素操作
- WebSphere异常:Servlet has become temporarily unavailable for service
- 在js中for in的用法
- windows下使用memem函数的实现
- Comparable与Comparator的区别
- C语言实现直方图均衡化
- 正则表达式练习题以及答案(如果有错误的话帮忙更正)
- 面试珠玑 在unix文件系统中,inode节点包括哪些内容?
- Tomcat与Apache的集成
- POJ 1383 --Labyrinth【BFS】
- 记录下 js各种证件的正则验证