国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

JavaScript中for..in循環陷阱介紹_javascript技巧

來源:懂視網 責編:小采 時間:2020-11-27 21:15:29
文檔

JavaScript中for..in循環陷阱介紹_javascript技巧

JavaScript中for..in循環陷阱介紹_javascript技巧:大家都知道在JavaScript中提供了兩種方式迭代對象: (1)for 循環; (2)for..in循環; 使用for循環進行迭代數組對象,想必大家都已經司空見慣了。但是,使用for.. in循環時,大家可要注意了,為什么這么說呢?大家聽我娓娓道來.... javascript
推薦度:
導讀JavaScript中for..in循環陷阱介紹_javascript技巧:大家都知道在JavaScript中提供了兩種方式迭代對象: (1)for 循環; (2)for..in循環; 使用for循環進行迭代數組對象,想必大家都已經司空見慣了。但是,使用for.. in循環時,大家可要注意了,為什么這么說呢?大家聽我娓娓道來.... javascript

大家都知道在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 ; ialert(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
一切又完好如初,哎,不知道,同志們看完有什么感受,是不是有種“撥開云霧見晴天”的感覺啊,呵呵

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

JavaScript中for..in循環陷阱介紹_javascript技巧

JavaScript中for..in循環陷阱介紹_javascript技巧:大家都知道在JavaScript中提供了兩種方式迭代對象: (1)for 循環; (2)for..in循環; 使用for循環進行迭代數組對象,想必大家都已經司空見慣了。但是,使用for.. in循環時,大家可要注意了,為什么這么說呢?大家聽我娓娓道來.... javascript
推薦度:
標簽: in 介紹 js
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产精品观看 | www.a级片| 亚洲欧美日韩网站 | 一级毛片一级毛片一级级毛片 | 九九久久精品国产 | 人人干人人爽 | 国产成人a一区二区 | 情趣视频网站 | 国产日韩中文字幕 | 日韩欧美片 | 欧美一区二区三区在线 | 欧美第一精品 | 欧美另类色 | 一区二区三区免费电影 | 国产成人在线免费视频 | 亚洲 欧美 视频 | 日韩国产在线观看 | 经典三级第一页 | 欧美高清在线视频一区二区 | 热re91久久精品国产91热 | 国产欧美日韩高清专区手机版 | 欧美成人高清视频 | 欧美在线不卡 | 国产九九热 | 一区二区在线观看视频 | 日韩欧美一区二区三区不卡视频 | 中文字幕第4页 | 欧美激情一区 | 国产伦精品一区二区三区视频小说 | 福利一区二区 | 免费黄色网址在线观看 | 成人国产一区二区三区精品 | 亚洲欧美日韩成人一区在线 | 亚洲欧美日韩高清一区二区一 | 国产欧美综合一区二区 | 欧美日韩v | 国产麻豆a一级毛片爽爽影院 | 波多野结衣在线免费观看 | 国产区在线看 | 久久伊人免费 | 国产一二三区视频 |