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

首頁 > 編程 > JavaScript > 正文

js中for in語句的用法講解

2019-11-20 12:37:06
字體:
供稿:網(wǎng)友

復(fù)制代碼 代碼如下:

 for(variable in object)
   statement

variable 是聲明一個(gè)變量的var語句,數(shù)組的一個(gè)元素或者是對(duì)象的一個(gè)屬性
在循環(huán)體內(nèi)部,對(duì)象的一個(gè)屬性名會(huì)被作為字符串賦給變量variable。

注意:對(duì)象的有些屬性以相同的方式標(biāo)記成了只讀的,永久的(不可刪除的)或者不可列舉的,這些屬性使用for/in循環(huán)不能枚舉出來。雖然所有的用戶定義的屬性都可以枚舉,但是許多內(nèi)部屬性,包括所有的內(nèi)部方法都是不可枚舉的。另外對(duì)象可以繼承其他對(duì)象的屬性,那些已繼承的用戶定義的屬性可以使用for/in 循環(huán)枚舉出來。

for(var i=0;i<len;i++)這樣的用法一般都可以用for in 來替代。

例如:

復(fù)制代碼 代碼如下:

var a = ["a","b","c"];
for(var el in a){
alert(a[el]);
}

這個(gè)就是窮舉出a中的所有元素,當(dāng)然上面這個(gè)例子是可以用
復(fù)制代碼 代碼如下:

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

這種方式進(jìn)行循環(huán)列出的,不過有時(shí)候這種方式就不一定奏效了。
例如:
復(fù)制代碼 代碼如下:

var a = {"first":1,"second":2,"third":3};

這個(gè)時(shí)候就只能用for in來窮舉了。

一個(gè)對(duì)象是否可以進(jìn)行for in窮舉,我們可以通過propertyIsEnumerable屬性來判斷,說明如下:

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

描述:

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

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

復(fù)制代碼 代碼如下:

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宜宾县| 金华市| 古浪县| 茌平县| 武功县| 平和县| 安泽县| 丰都县| 澎湖县| 婺源县| 巨野县| 自治县| 神木县| 朝阳市| 思茅市| 库尔勒市| 日照市| 吉木萨尔县| 鄂伦春自治旗| 和硕县| 萨迦县| 黄陵县| 西贡区| 遂宁市| 全椒县| 成安县| 延川县| 甘泉县| 宜都市| 宁津县| 长兴县| 漠河县| 商南县| 喀什市| 兴业县| 墨脱县| 苏尼特左旗| 平山县| 望奎县| 丹东市| 乌拉特后旗|