国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

js中for in語句的用法講解

2024-05-06 16:18:37
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了js中for in語句的用法講解,本文用多個實例講解了for in語句的用法及適合場景,需要的朋友可以參考下
 

 

復制代碼代碼如下:

 for(variable in object)
   statement

variable 是聲明一個變量的var語句,數組的一個元素或者是對象的一個屬性
在循環體內部,對象的一個屬性名會被作為字符串賦給變量variable。

 

注意:對象的有些屬性以相同的方式標記成了只讀的,永久的(不可刪除的)或者不可列舉的,這些屬性使用for/in循環不能枚舉出來。雖然所有的用戶定義的屬性都可以枚舉,但是許多內部屬性,包括所有的內部方法都是不可枚舉的。另外對象可以繼承其他對象的屬性,那些已繼承的用戶定義的屬性可以使用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屬性來判斷,說明如下:

object.propertyIsEnumerable(propname)是否可以通過for/in循環看到屬性
propname 一個字符串,包含object屬性的名稱
如果object具有名為propname的非繼承屬性,而且該屬性是可枚舉的(即用for/in循環可以枚舉它),則返回true

描述:

用for/in語句可以遍歷一個對象"可枚舉"的屬性,但并非一個對象的所有屬性都是可枚舉的,通過JavaScript代碼添加到對象的屬性是可枚舉的,而內部對象的預定義屬性(如方法)通常是不可枚舉的.

propertyIsEnumerable()方法不檢測原型鏈,這意味它只適用于對象的局部屬性,不能檢測繼承屬性的可枚舉性

復制代碼代碼如下:

var o=new Object();
o.x=3.14;
o.propertyIsEnumerable("x");//true
o.propertyIsEnumerable("y");//false have not the property
o.propertyIsEnumerable("toString");//false inherited
Object.prototype.propertyIsEnumerable("toString");//false nonenumerable

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 象州县| 台山市| 湘西| 渭南市| 益阳市| 太和县| 民勤县| 讷河市| 安阳市| 通州市| 方山县| 桐庐县| 长宁区| 武宣县| 搜索| 谷城县| 荆门市| 宜良县| 右玉县| 扬州市| 内江市| 海原县| 崇州市| 神池县| 梨树县| 长沙市| 敦化市| 奉贤区| 台南县| 竹山县| 尚志市| 高青县| 阳原县| 永川市| 政和县| 合江县| 新巴尔虎左旗| 汝阳县| 中牟县| 邻水| 昆山市|