for in 和 in 的用法

1.For...In 声明用于对数组或者对象的属性(可枚举的,即包括实例中的属性,也包括原型中的可枚举属性)进行循环/迭代操作。

对于数组 ,迭代出来的是数组元 素,对于对象 ,迭代出来的是对象的属性;

1 for(var i=0,len=a.length;i<len;i++){
2 alert(a[i]);
3 } 

以上代码完全可以用for  in代替:

1 var a = ["a","b","c"];
2 for(var el in a){
3 alert(a[el]);//输出为a,b,c
4 } 

但需要迭代操作的是对象的时候,简单的for循环就不一定奏效了,最好用for in:

1 var obj = {  
2     w: "wen",  
3     j: "jian",  
4     b: "bao"  
5 }  
6 for(var v in obj){  
7   document.write(v)+"<br/>";  
8   

输出为:

1     w  
2     j  
3     b  

一个对象是否可以进行for in穷举,我们可以通过propertyIsEnumerable属性来判断,说明如下:
propertyIsEnumerable 属性 返回 Boolean 值,指出所指定的属性是否为一个对象的一部分以及该属性是否是可列举的。

1 object.propertyIsEnumerable(proName) 

参数
object
必选项。一个对象。

proName
必选项。一个属性名称的字符串值。注意是字符串的形式!!

说明
如果 proName 存在于 object 中且可以使用一个 For…In 循环穷举出来,那么 propertyIsEnumerable 属性返回 true。如果 object 不具有所指定的属性或者所指定的属性不是可列举的,那么 propertyIsEnumerable 属性返回 false。典型地,预定义的属性不是可列举的,而用户定义的属性总是可列举的。
propertyIsEnumerable 属性不考虑原型链中的对象。

 

2.判断对象是否为数组/对象的元素/属性:

格式:(变量 in 对象)......注意,,,

  当“对象”为数组时,“变量”指的是数组的“索引”;

  当“对象”为对象是,“变量”指的是对象的“属性”(包括实例和原型中的可枚举属性)。

 

数组示例:

Js代码  
 
1     var arr = ["a","b","2","3","str"];  
2     var result = ("b" in arr);  
3     var result1 = (4 in arr);  
4     document.write(result+"<br>");  
5     document.write(result1+"<br>");  

 

 输出为:
1 false  
2 true 
 对象示例:
Js代码  
 1     var obj={  
 2              w:"wen",  
 3              j:"jian",  
 4              b:"bao"  
 5                
 6         }  
 7           
 8     var result=(2 in obj);      
 9     var result1=("j" in obj);  
10       
11     document.write(result)+"<br/>";  
12     document.write(result1)+"<br/>";  

 

 
输出为:
1 false  
2 true  

 

转载于:https://www.cnblogs.com/178-533/p/7468821.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值