js中for in 的用法
2015-09-07 10:24
323 查看
转载地址:http://blog.sina.com.cn/s/blog_4ef04d280100nc6g.html
for(var i=0;i<len;i++)这样的用法一般都可以用for in 来替代。
例如:
var a = ["a","b","c"];
for(var el in a){
alert(a[el]);
}
这个就是穷举出a中的所有元素,当然上面这个例子是可以用
for(var i=0,len=a.length;i<len;i++){
alert(a[i]);
}
这种方式进行循环列出的,不过有时候这种方式就不一定奏效了。
例如:
var a = {"first":1,"second":2,"third":3};
这个时候就只能用for in来穷举了。
一个对象是否可以进行for in穷举,我们可以通过propertyIsEnumerable属性来判断,说明如下:
propertyIsEnumerable 属性
返回 Boolean 值,指出所指定的属性是否为一个对象的一部分以及该属性是否是可列举的。
object.propertyIsEnumerable(proName)
参数
object
必选项。一个对象。
proName
必选项。一个属性名称的字符串值。
说明
如果 proName 存在于 object 中且可以使用一个 For…In 循环穷举出来,那么 propertyIsEnumerable 属性返回 true。如果 object 不具有所指定的属性或者所指定的属性不是可列举的,那么 propertyIsEnumerable 属性返回 false。典型地,预定义的属性不是可列举的,而用户定义的属性总是可列举的。
propertyIsEnumerable 属性不考虑原型链中的对象。
for(var i=0;i<len;i++)这样的用法一般都可以用for in 来替代。
例如:
var a = ["a","b","c"];
for(var el in a){
alert(a[el]);
}
这个就是穷举出a中的所有元素,当然上面这个例子是可以用
for(var i=0,len=a.length;i<len;i++){
alert(a[i]);
}
这种方式进行循环列出的,不过有时候这种方式就不一定奏效了。
例如:
var a = {"first":1,"second":2,"third":3};
这个时候就只能用for in来穷举了。
一个对象是否可以进行for in穷举,我们可以通过propertyIsEnumerable属性来判断,说明如下:
propertyIsEnumerable 属性
返回 Boolean 值,指出所指定的属性是否为一个对象的一部分以及该属性是否是可列举的。
object.propertyIsEnumerable(proName)
参数
object
必选项。一个对象。
proName
必选项。一个属性名称的字符串值。
说明
如果 proName 存在于 object 中且可以使用一个 For…In 循环穷举出来,那么 propertyIsEnumerable 属性返回 true。如果 object 不具有所指定的属性或者所指定的属性不是可列举的,那么 propertyIsEnumerable 属性返回 false。典型地,预定义的属性不是可列举的,而用户定义的属性总是可列举的。
propertyIsEnumerable 属性不考虑原型链中的对象。
相关文章推荐
- 收藏的js实现全国省份城市级联下拉菜单
- bzoj1031 [JSOI2007]字符加密Cipher
- 关于JavaScript中function的两种创建方式的解析
- Newtonsoft.Json 时区差解决方法
- 自定义 json的返回格式 : JsonSerializer
- Javascript 文件的同步加载与异步加载
- 使用JS实现简单缓存功能,防止用户重复点击,重复AJAX提交
- C# WebService中将集合数据转化为字符串(json,xml )的方式
- JavaScript/js把秒或者毫秒换算成xx-xx-xx 时-分-秒的形式
- Ember.js 入门指南——类的定义、初始化、继承
- Ember.js 入门指南——类的定义、初始化、继承
- js调用百度地图及调用百度地图的搜索功能
- js实现可折叠展开的手风琴菜单效果
- js获取浏览器类型
- Jsp:useBean使用详解
- 获取鼠标移动位置
- 原生JS实现美图瀑布流布局赏析
- javascript 整型与字符串比较大小
- js实现全国省份城市级联下拉菜单效果代码
- 如何用javascript正则表达式验证身份证号码是否合法