麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

JavaScript中for..in循環陷阱介紹

2019-11-20 21:43:28
字體:
來源:轉載
供稿:網友
大家都知道在JavaScript中提供了兩種方式迭代對象:
(1)for 循環;
(2)for..in循環;
使用for循環進行迭代數組對象,想必大家都已經司空見慣了。但是,使用for.. in循環時,大家可要注意了,為什么這么說呢?大家聽我娓娓道來....
javascript提供了一種特殊的循環(也就是for .. in循環),用來迭代對象的屬性或數組的每個元素,for...in循環中的循環計數器是字符串,而不是數字。它包含當前屬性的名稱或當前數組元素的索引。
案例一:
復制代碼 代碼如下:

//使用for..in循環遍歷對象屬性
varperson={
name: "Admin",
age: 21,
address:"shandong"
};
for(vari in person){
console.log(i);
}

執行結果為:
name
age
address
當遍歷一個對象的時候,變量 i 也就是循環計數器 為 對象的屬性名
復制代碼 代碼如下:

//使用for..in循環遍歷數組
vararray = ["admin","manager","db"]
for(vari in array){
console.log(i);
}

執行結果:
0
1
2
當遍歷一個數組的時候,變量 i 也就是循環計數器 為 當前數組元素的索引
案例二:
但是,現在看來for .. in循環還挺好用啊,不過,別高興太早,看看下面的例子:
復制代碼 代碼如下:

var array =["admin","manager","db"];
//給Array的原型添加一個name屬性
Array.prototype.name= "zhangsan";
for(var i in array){
alert(array[i]);
}

運行結果:
admin
manager
db
zhangsan
咦,奇觀了,怎么平白無故的冒出來一個zhangsan
現在,再看看使用 for循環會怎樣?
復制代碼 代碼如下:

vararray = ["admin","manager","db"];
//給Array的原型添加一個name屬性
Array.prototype.name = "zhangsan";
for(var i =0 ; i<array.length; i++){
alert(array[i]);
};

運行結果:
admin
manager
db
哦, 現在明白了,for..in循環會把某個類型的原型(prototype)中方法與屬性給遍歷出來,所以這可能會導致代碼中出現意外的錯誤。為了避免這個問題,我們可以使用對象的hasOwnProperty()方法來避免這個問題,如果對象的屬性或方法是非繼承的,那么hasOwnProperty() 方法返回true。即這里的檢查不涉及從其他對象繼承的屬性和方法,只會檢查在特定對象自身中直接創建的屬性。
案例三:
復制代碼 代碼如下:

vararray = ["admin","manager","db"];
Array.prototype.name= "zhangshan";
for(vari in array){
//如果不是該對象自身直接創建的屬性(也就是該屬//性是原型中的屬性),則跳過顯示
if(!array.hasOwnProperty(i)){
continue;
}
alert(array[i]);
}

運行結果:
admin
manager
db
一切又完好如初,哎,不知道,同志們看完有什么感受,是不是有種“撥開云霧見晴天”的感覺啊,呵呵
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九九久久视频 | 久久久久性 | 国产剧情v888av| 精品亚洲一区二区三区 | 婷婷中文字幕一区二区三区 | 亚洲精久| 色综合久久久久久 | 成人 精品| 成年人黄视频 | 久久久久亚洲a | 成人精品| 一级美女大片 | 国产成人在线观看免费网站 | 一本一道久久久a久久久精品91 | 国产99久久 | 新久久久久久 | 亚洲精品一区二区三区大胸 | 一边吃奶一边插下面 | 中文字幕在线观看网址 | 毛片a片免费看 | 久久久久久久亚洲视频 | omofun 动漫在线观看 | 日产精品一区二区三区在线观看 | 国产成人在线免费观看视频 | 精品一区二区久久久久 | 亚洲国产超高清a毛毛片 | 99视频有精品视频高清 | 法国极品成人h版 | 亚洲电影在线播放 | 欧美不卡| 色的综合 | 毛片免费观看完整版 | 欧美黄色三级视频 | 色妞视频男女视频 | 九九热免费精品视频 | 泰剧19禁啪啪无遮挡 | 狠狠操电影 | 国产一级www | 久久久久女人精品毛片九一 | 一级黄色淫片 | 一区二区三区日韩电影 |