js中for in的用法解析

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 屬性不考慮原型鏈中的對象。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章