国产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
當前位置: 首頁 - 科技 - 知識百科 - 正文

js中的forin循環和for循環有什么區別

來源:懂視網 責編:小采 時間:2020-11-27 20:13:27
文檔

js中的forin循環和for循環有什么區別

js中的forin循環和for循環有什么區別:JavaScript for...in 語句for...in 語句用于對數組或者對象的屬性進行循環操作。for ... in 循環中的代碼每執行一次,就會對數組的元素或者對象的屬性進行一次操作。Tip:for-in循環應該用在非數組對象的遍歷上,使用for-in進行循環也被稱為枚舉?!?/div>
推薦度:
導讀js中的forin循環和for循環有什么區別:JavaScript for...in 語句for...in 語句用于對數組或者對象的屬性進行循環操作。for ... in 循環中的代碼每執行一次,就會對數組的元素或者對象的屬性進行一次操作。Tip:for-in循環應該用在非數組對象的遍歷上,使用for-in進行循環也被稱為枚舉。·

JavaScript for...in 語句

for...in 語句用于對數組或者對象的屬性進行循環操作。

for ... in 循環中的代碼每執行一次,就會對數組的元素或者對象的屬性進行一次操作。

Tip:for-in循環應該用在非數組對象的遍歷上,使用for-in進行循環也被稱為“枚舉”?!?/p>

語法:

for (變量 in 對象)
{ 在此執行代碼}

“變量”用來指定變量,指定的變量可以是數組元素,也可以是對象的屬性。

實例:使用 for ... in 循環遍歷數組。

<html><body><script type="text/javascript">var x
var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"
for (x in mycars)
{
document.write(mycars[x] + "<br />")
}</script></body></html>

注意一:for in循環不會按照屬性的下標來排列輸出。

//code from http://caibaojian.com/js-loop-for-in.html"first":"first", "zoo":"zoo", "2":"2", "34":"34", "1":"1", "second":"second"};for (var i in obj) { console.log(i); };
輸出:1234firstzoosecond

執行時按chrome執行,先把當中的非負整數鍵提出來,排序好輸出,然后將剩下的定義時的順序輸出。由于這個奇葩的設定,讓avalon的ms-with對象排序不按預期輸出了。只能強制用戶不要以純數字定義鍵名。

實例1:在數組的原型對象上定義了一個新的屬性,使用for循環沒出現問題

function getNewArray(){var array=[1,2,3,4,5];Array.prototype.age=13;
var result = [];for(var i=0;i<array.length;i++){
result.push(array[i]);
}alert(result.join(''));
}

實例2:采用了for in循環,但是給我們期望的一樣還是得到了12345的正確結果

function getArrayTwo(){var array=[1,2,3,4,5 ];
var result=[];
for(var i in array){
result.push(array[i]);
}alert(result.join(''));
}

實例3:給原型添加屬性之后,默認情況下枚舉,最后輸出1234513

function getNewArrayTwo(){var array=[1,2,3,4,5 ];
Array.prototype.age=13;var result=[];
for(var i in array){
result.push(array[i]);
}alert(result.join(''));
}

所以建議不要對數組執行for in循環,事實上,在高性能javascript這本書中,也強調了for in循環的不好,因為它總是會訪問該對象的原型,看下原型上是否有屬性,這在無意中就給遍歷增加了額外的壓力。

解決方法:

如果某個對象具有給定名稱的屬性,那么Object.prototype.hasOwnProperty(name)返回true。如果該對象是從原型鏈中繼承了該屬性,或者根本沒有這樣的一個屬性,則返回false。通過hasOwnProperty限定for in循環在當前中遍歷,而不用去考慮它的原型屬性。

function finalArray(){var array=[1,2,3,4,5 ];
Array.prototype.age=13;
var result=[];for(var i in array){if(array.hasOwnProperty(i)){
result.push(array[i]);
}
}alert(result.join(''));
}

注意事項:

1.有一部分瀏覽器,例如早期的safari瀏覽器,不支持這個方法

2.對象經常被用作哈希值,這就是存在hasOwnProperty被另外的屬性屏蔽的風險(但是我估計沒有人那么無聊使用這個屬性)

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

文檔

js中的forin循環和for循環有什么區別

js中的forin循環和for循環有什么區別:JavaScript for...in 語句for...in 語句用于對數組或者對象的屬性進行循環操作。for ... in 循環中的代碼每執行一次,就會對數組的元素或者對象的屬性進行一次操作。Tip:for-in循環應該用在非數組對象的遍歷上,使用for-in進行循環也被稱為枚舉。·
推薦度:
標簽: 區別 in js
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 精品国产香蕉 | 欧美福利在线观看 | 九九精品成人免费国产片 | 欧美综合亚洲 | 国产一区二区三区欧美 | 香蕉久久一区二区三区 | 国产精品高清在线观看 | 日日碰日日摸日日澡视频播放 | 国产成人久久精品一区二区三区 | 亚洲第一区se | 欧美日韩高清一区 | 久久久国产这里有的是精品 | 亚洲天堂一区二区三区 | 日韩欧美天堂 | 国产欧美久久久精品影院 | 国产高清a毛片在线看 | 国产亚洲人成a在线v网站 | 欧美日韩视频在线播放 | 中文字幕第一页亚洲 | 欧美福利在线观看 | 广东东莞一级毛片免费 | 精品一区二区三区在线观看 | 免费观看国产精品 | 国产精品自在欧美一区 | 久久中文字幕久久久久91 | 成人午夜精品久久久久久久小说 | www.亚洲一区 | www.欧美色图 | 一级毛片在线全部免费播放 | 亚洲第一区视频在线观看 | 欧美色图第一页 | 久久精品一区二区影院 | 国产在线视频在线观看 | 看全黄大色大黄美女 | 日韩不卡手机视频在线观看 | 精品欧美| 欧美极品第一页 | 亚洲专区欧美专区 | 日韩精品一区二区三区国语自制 | 国产精品一区二区av | 国产精品久久久久久一区二区 |