欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javascript中for/in循環(huán)及使用技巧

 更新時(shí)間:2015年09月01日 18:10:55   投稿:mrr  
如果您希望一遍又一遍地運(yùn)行相同的代碼,并且每次的值都不同,那么使用循環(huán)是很方便的,本篇文章給大家介紹javascript中for/in循環(huán)及使用技巧 ,需要的朋友可以參考下

JavaScript 支持不同類型的循環(huán):

for - 循環(huán)代碼塊一定的次數(shù)

for/in - 循環(huán)遍歷對(duì)象的屬性

while - 當(dāng)指定的條件為 true 時(shí)循環(huán)指定的代碼塊

do/while - 同樣當(dāng)指定的條件為 true 時(shí)循環(huán)指定的代碼塊

1. in運(yùn)算符:要求其左邊的運(yùn)算數(shù)是一個(gè)字符串,或可以被轉(zhuǎn)換為字符串,右邊的運(yùn)算數(shù)是一個(gè)對(duì)象或數(shù)組。如果該運(yùn)算符左邊的值是右邊對(duì)象的一個(gè)屬性名,則返回true。

例如:

   var point={x:1,y:2}; //對(duì)象直接量
   var has_x="x" in point; //返回true
   var has_z="z" in point; //返回false
   var ts="toString" in point;//返回true,toString為繼承方法

   2. for/in語句:語法,

for (variable in object)
                           statement;

      提供了一種遍歷對(duì)象屬性的方法。

例:

for(var prop in my_object) {
    document.write("name:"+prop+";value:"+my_object[prop],"<br>");
  }

      javascript的數(shù)組是一種特殊的對(duì)象,因此for/in循環(huán)可以像枚舉對(duì)象屬性一樣枚舉數(shù)組下標(biāo)。

可以把一個(gè)對(duì)象的所有屬性名復(fù)制到一個(gè)數(shù)組中,

例:

var o= {x:1,y:2,z:3};
  var a=new Array();
  var i=0;
  for (a[i++] in o) 
  ;//空語句,用于初始化數(shù)組

    3. in運(yùn)算符與for/in語句不同,for/in語句in的左邊可以是聲明一個(gè)變量的var語句,數(shù)組的一個(gè)元素或者是對(duì)象的一個(gè)屬性,不能使字符串。

    4. 數(shù)組常用的存取屬性運(yùn)算符是“[]”,而不是“.”。使用“[]”來命名屬性名師字符串值,是動(dòng)態(tài)的,可以在運(yùn)行時(shí)改變,而不是一個(gè)標(biāo)識(shí)符“.”。

例:

var stock_name= get_stock_name_from_user();//從用戶處獲取股票名
  var share= get_number_of_shares();//得到股票數(shù)量
  portfolio[stock_name]= share;//動(dòng)態(tài)地創(chuàng)建數(shù)組股票,并為每支股票賦值
  將該例子與for/in循環(huán)一起使用,當(dāng)用戶輸入了他的投資組合,可以計(jì)算當(dāng)前總值
  var value= 0;
  for (stock in portfolio) {
    value +=get_share_value(stock)*portfolio[stock];
  }

stock存取的是每支股票的名字。     

portfolio[stock]存取的是每支股票的數(shù)量。

for-in循環(huán)

功能:遍歷對(duì)象屬性,把屬性名和屬性值都提出來

var obj = {
 "key1":"value1",
 "key2":"value2",
 "key3":"value3"
};
function EnumaKey(){
 for(var key in obj ){
  alert(key);
 }
}
function EnumaVal(){
 for(var key in obj ){
  alert(obj[key]);
 }
}
EnumaKey(obj)
//key1 key2 key3
EnumaVal(obj)
//value1 value2 value3

數(shù)組也可以這樣遍歷,但不推薦,因?yàn)椴荒鼙WC順序,而且如果在Array的原型上添加了屬性,這個(gè)屬性也會(huì)被遍歷出來。

for-in循環(huán)應(yīng)該用在非數(shù)組對(duì)象的遍歷上,使用for-in進(jìn)行循環(huán)也被稱為“枚舉”。

從技術(shù)上將,你可以使用for-in循環(huán)數(shù)組(因?yàn)镴avaScript中數(shù)組也是對(duì)象),但這是不推薦的。因?yàn)槿绻麛?shù)組對(duì)象已被自定義的功能增強(qiáng),就可能發(fā)生邏輯錯(cuò)誤。另外,在for-in中,屬性列表的順序(序列)是不能保證的。所以最好數(shù)組使用正常的for循環(huán),對(duì)象使用for-in循環(huán)。

相關(guān)文章

  • Javascript 同時(shí)提交多個(gè)Web表單的方法

    Javascript 同時(shí)提交多個(gè)Web表單的方法

    1 問題來自一位網(wǎng)友的提問: web頁面里有多個(gè)表單,每個(gè)表單對(duì)應(yīng)著某一類數(shù)據(jù)操作。
    2009-02-02
  • Bootstrap每天必學(xué)之面板

    Bootstrap每天必學(xué)之面板

    Bootstrap每天必學(xué)之面板,面板(Panels)是Bootstrap框架新增的一個(gè)組件,其主要作用就是用來處理一些其他組件無法完成的功能,對(duì)面板感興趣的小伙伴們可以參考一下
    2015-11-11
  • 深入淺出理解JavaScript高級(jí)定時(shí)器原理與用法

    深入淺出理解JavaScript高級(jí)定時(shí)器原理與用法

    這篇文章主要介紹了JavaScript高級(jí)定時(shí)器原理與用法,結(jié)合實(shí)例形式分析了javascript重復(fù)定時(shí)器相關(guān)問題與解決方法,并描述了函數(shù)節(jié)流的原理與相關(guān)操作方法,需要的朋友可以參考下
    2018-08-08
  • 基于微信小程序?qū)崿F(xiàn)人臉數(shù)量檢測(cè)的開發(fā)步驟

    基于微信小程序?qū)崿F(xiàn)人臉數(shù)量檢測(cè)的開發(fā)步驟

    最近項(xiàng)目需求是統(tǒng)計(jì)當(dāng)前攝像頭中的人臉個(gè)數(shù),所以下面這篇文章主要給大家介紹了關(guān)于基于微信小程序?qū)崿F(xiàn)人臉數(shù)量檢測(cè)的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • JS實(shí)現(xiàn)點(diǎn)擊發(fā)送驗(yàn)證碼 xx秒后重新發(fā)送功能

    JS實(shí)現(xiàn)點(diǎn)擊發(fā)送驗(yàn)證碼 xx秒后重新發(fā)送功能

    在一些注冊(cè)類的網(wǎng)站,經(jīng)常遇到這樣的需求,點(diǎn)擊發(fā)送驗(yàn)證碼,xx秒后重新發(fā)送,這樣的功能怎么實(shí)現(xiàn)呢,接下來通過本文給大家分享js點(diǎn)擊發(fā)送驗(yàn)證碼 xx秒后重新發(fā)送功能,需要的朋友參考下吧
    2019-07-07
  • autojs 螞蟻森林能量自動(dòng)拾取即給指定好友澆水的實(shí)現(xiàn)方法

    autojs 螞蟻森林能量自動(dòng)拾取即給指定好友澆水的實(shí)現(xiàn)方法

    這篇文章主要介紹了autojs 螞蟻森林能量自動(dòng)拾取即給指定好友澆水的實(shí)現(xiàn)方法,本文通過圖文并茂實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • javascript 可控式透明特效實(shí)現(xiàn)代碼

    javascript 可控式透明特效實(shí)現(xiàn)代碼

    透明特效是script.aculo.us提到的特效中最簡(jiǎn)單的特效之一。既然是特效,必須涉及時(shí)間與空間的概念。時(shí)間我們可以用setTimeout與setInterval,個(gè)人比較喜歡setTimeout,雖然它每次調(diào)用都重復(fù)注冊(cè),但可控性比較好。
    2010-01-01
  • 從Immutable.js到Redux函數(shù)式編程

    從Immutable.js到Redux函數(shù)式編程

    這篇文章主要為大家介紹了從Immutable.js到Redux函數(shù)式編程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • javascript新建標(biāo)簽,判斷鍵盤輸入,以及判斷焦點(diǎn)(示例代碼)

    javascript新建標(biāo)簽,判斷鍵盤輸入,以及判斷焦點(diǎn)(示例代碼)

    這篇文章主要介紹了javascript新建標(biāo)簽,判斷鍵盤輸入,以及判斷焦點(diǎn)(示例代碼)。需要的朋友可以過來參考下,希望對(duì)大家有所幫助
    2013-11-11
  • 小程序云開發(fā)實(shí)戰(zhàn)小結(jié)

    小程序云開發(fā)實(shí)戰(zhàn)小結(jié)

    這篇文章主要介紹了小程序云開發(fā)實(shí)戰(zhàn)小結(jié),本文詳細(xì)的介紹了云開發(fā)以及環(huán)境的搭建和項(xiàng)目實(shí)踐,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-10-10

最新評(píng)論