国产探花免费观看_亚洲丰满少妇自慰呻吟_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

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

圖片精選

主站蜘蛛池模板: 齐齐哈尔市| 新乡县| 郑州市| 灌云县| 九江市| 昌平区| 大城县| 汉寿县| 长子县| 海阳市| 龙州县| 韩城市| 文山县| 巴马| 和平区| 宜君县| 南郑县| 云南省| 雷州市| 同江市| 印江| 洪江市| 鹤岗市| 清镇市| 嵊泗县| 比如县| 海淀区| 建宁县| 杭锦后旗| 东阿县| 自贡市| 阳泉市| 图木舒克市| 馆陶县| 三河市| 元氏县| 恩施市| 通辽市| 新和县| 溧水县| 宜城市|