bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

javascript有哪些循環(huán)語(yǔ)句

這篇文章主要介紹“javascript有哪些循環(huán)語(yǔ)句”,在日常操作中,相信很多人在javascript有哪些循環(huán)語(yǔ)句問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”javascript有哪些循環(huán)語(yǔ)句”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),翁源企業(yè)網(wǎng)站建設(shè),翁源品牌網(wǎng)站建設(shè),網(wǎng)站定制,翁源網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,翁源網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

循環(huán)語(yǔ)句有:1、for循環(huán);2、“for...in”循環(huán);3、while循環(huán);4、“do…while”循環(huán);5、forEach循環(huán);6、map;7、filter過(guò)濾循環(huán);8、“Object.keys”遍歷對(duì)象的屬性。

本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。

項(xiàng)目開發(fā)中,不管是建立在哪個(gè)框架基礎(chǔ)上,對(duì)數(shù)據(jù)的處理都是必須的,而處理數(shù)據(jù)離不開各種遍歷循環(huán)。javascript中循環(huán)遍歷有很多種方式,記錄下幾種常見的js循環(huán)遍歷。

一、for循環(huán)

for 語(yǔ)句主要用于執(zhí)行確定執(zhí)行次數(shù)的循環(huán)。

for 語(yǔ)句的基本語(yǔ)法如下:

for([初始值表達(dá)式];[條件表達(dá)式];[增量表達(dá)式]){
   循環(huán)體語(yǔ)句;
}

說(shuō)明:

  • “初始值表達(dá)式”:為循環(huán)變量設(shè)置初始值;

  • “條件表達(dá)式”:作為是否進(jìn)入循環(huán)的依據(jù),可以是任意表達(dá)式,但一般為關(guān)系表達(dá)式或邏輯表達(dá)式,取值為真或假。每次要執(zhí)行循環(huán)之前,都會(huì)進(jìn)行條件表達(dá)式值的判斷。如果值為真(值為 true 或非 0 或非空),則執(zhí)行循環(huán)體語(yǔ)句;否則就退出循環(huán)并執(zhí)行循環(huán)語(yǔ)句后面的代碼;

  • “增量表達(dá)式”:根據(jù)此表達(dá)式更新循環(huán)變量的值。

上述 3 個(gè)表達(dá)式中的任意一個(gè)都可以省略,但需要注意的是,for() 中的;不可以省略。所以如果 3 個(gè)表達(dá)式都省略時(shí),for 語(yǔ)句變?yōu)椋篺or(;;){循環(huán)體語(yǔ)句}。此時(shí)需要注意的是,如果循環(huán)體內(nèi)沒有退出循環(huán)的語(yǔ)句,將會(huì)進(jìn)入死循環(huán)。

示例:

     var sum = 0;
     for(var i = 1; i <= 100;i++){        //在for語(yǔ)句中使用var聲明循環(huán)變量,使代碼更簡(jiǎn)潔
         sum += i;
     }
     alert("1~100的累加和sum=" + sum);

二、for...in

for...in循環(huán)主要針對(duì)于對(duì)象的遍歷,當(dāng)想要獲取對(duì)象的對(duì)應(yīng)鍵值時(shí),使用for...in還是比較方便的

var a = [1, 2, ,,,,,,true,,,,,,, "a",,,,,,,,,,,,,,,4,,,,,56,,,,,,"b"];  //定義數(shù)組
var b = [], num = 0;
for (var i = 0; i < a.length; i ++) {  //遍歷數(shù)組
    if (typeof a[i] == "number")  //如果為數(shù)字,則返回該元素的值
        b.push(a[i]);
    num ++;  //計(jì)數(shù)器
}
console.log(num);  //返回42,說(shuō)明循環(huán)了42次
console.log(b);  //返回[1,2,4,56]

三、while循環(huán)

while 語(yǔ)句是最常用的一種循環(huán)語(yǔ)句,在程序中常用于只需根據(jù)條件執(zhí)行循環(huán)而不需關(guān)心循環(huán)次數(shù)的情況。

while 語(yǔ)句的基本語(yǔ)法如下:
while(條件表達(dá)式){
     循環(huán)體;
}

說(shuō)明:

  • 條件表達(dá)式:為循環(huán)控制條件,必須放在圓括號(hào)中,可以是任意表達(dá)式,但一般為關(guān)系表達(dá)式或邏輯表達(dá)式,取值為真或假。注意:值為 true、非 0、非空的都是真值,反之則為假值。

  • 循環(huán)體:代表需要重復(fù)執(zhí)行的操作,可以是簡(jiǎn)單語(yǔ)句,也可以是復(fù)合語(yǔ)句。當(dāng)為簡(jiǎn)單語(yǔ)句時(shí),可以省略大括號(hào){},否則必須使用大括號(hào){}。

while 語(yǔ)句在執(zhí)行時(shí),首先判斷條件表達(dá)式的值,如果為真,則執(zhí)行循環(huán)體語(yǔ)句,然后再對(duì)條件表達(dá)式進(jìn)行判斷,如果值還是為真,則繼續(xù)執(zhí)行循環(huán)體語(yǔ)句;否則執(zhí)行 while 語(yǔ)句后面的語(yǔ)句。如果表達(dá)式的值在第一次判斷就為假(為 false 或 0 或?yàn)?null 等值),則一次也不會(huì)執(zhí)行循環(huán)體。

需要注意的是,為了使 while 循環(huán)能正常結(jié)束,循環(huán)體內(nèi)應(yīng)該有修改循環(huán)條件的語(yǔ)句或其他終止循環(huán)的語(yǔ)句,否則 while 循環(huán)將進(jìn)入死循環(huán),即會(huì)一直循環(huán)不斷地執(zhí)行循環(huán)體。

例如,下面的循環(huán)語(yǔ)句就會(huì)造成死循環(huán)。

var i=1,s=0;
whiel(i<=5){
    s+=i;      
}

上述代碼中 i 的初始值為 1,由于循環(huán)體內(nèi)沒有修改 i 變量的值,所以表達(dá)式 i<=5 永遠(yuǎn)為真,因而循環(huán)體會(huì)一直執(zhí)行。

死循環(huán)會(huì)極大地占用系統(tǒng)資源,最終有可能導(dǎo)致系統(tǒng)崩潰,所以我們編程時(shí)一定要注意避免死循環(huán)。

     var sum = 1, i = 1;
     var ex = 1;
     while(sum <= 1.5){
         sum += 1/((i + 1)*(i + 1));
         if(sum > 1.5)
              break;
         i++;
         ex +=" + 1/(" + i + "*" + i + ")";
     }
     alert("表達(dá)式的值小于等于1.5時(shí)的i=" + i + ",對(duì)應(yīng)的表達(dá)式為:" + ex);

四、do…while循環(huán)

do…while 語(yǔ)句是 while 語(yǔ)句的變形。兩者的區(qū)別在于,while 語(yǔ)句把循環(huán)條件判斷放在循環(huán)體語(yǔ)句執(zhí)行的前面,而 do…while 語(yǔ)句則把循環(huán)條件判斷放在循環(huán)體語(yǔ)句執(zhí)行的后面。

do…while 語(yǔ)句的基本語(yǔ)法如下:

do{
  循環(huán)體;
}while (條件表達(dá)式);

“條件表達(dá)式”和“循環(huán)體”的含義與 while 語(yǔ)句的相同。在此需要注意的是,do…while 語(yǔ)句最后需要使用;結(jié)束,如果代碼中沒有加上;,則 JavaScript 會(huì)自動(dòng)補(bǔ)上。

do…while 語(yǔ)句在執(zhí)行時(shí),首先執(zhí)行循環(huán)體語(yǔ)句,然后再判斷條件表達(dá)式的值,如果值為真(值為 true 或非 0 值),則再次執(zhí)行循環(huán)體語(yǔ)句。do…while 語(yǔ)句至少會(huì)執(zhí)行一次循環(huán)體,這一點(diǎn)和 while 語(yǔ)句有顯著的不同。

     var sum = 1, i = 1;
     var ex = 1;
     do{
         sum += 1/((i + 1)*(i + 1));
         if(sum > 1.5)
              break;
         i++;
         ex +=" + 1/(" + i + "*" + i + ")";
     }while(sum <= 1.5);
     alert("表達(dá)式的值小于等于1.5時(shí)的i=" + i + ",對(duì)應(yīng)的表達(dá)式為:" + ex);

五、forEach

forEach的使用方法和map使用方法差不多,只是forEach方法不返回值,只用來(lái)操作數(shù)據(jù),且循環(huán)中途是無(wú)法停止的,總是會(huì)將所有成員遍歷完

let arrObj = [{
    id: 1,
    name: 'xiaohua'
},{
    id:2,
    name: 'xiaomin'
},{
    id:3,
    name: 'xiaobai'
}]
arrObj.forEach((item,index,arr)=>{
    console.log(arr) // arrObj
    console.log(index)  // 0 1 2
    console.log(item.name) // xiaohua xiaomin xiaobai
})

六、map

map方法將數(shù)組的所有成員依次傳入?yún)?shù)函數(shù),然后把每一次的執(zhí)行結(jié)果組成一個(gè)新數(shù)組返回。循環(huán)中途是無(wú)法停止的,總是會(huì)將所有成員遍歷完

let arr = [1,2,3,4,5]
let arr2 = arr.map((n)=>{
      return n+1
})
console.log(arr2) // [2,3,4,5,6]
console.log(arr) // [1,2,3,4,5]

map方法接受一個(gè)函數(shù)作為參數(shù)。該函數(shù)調(diào)用時(shí),map方法向它傳入三個(gè)參數(shù):當(dāng)前成員、當(dāng)前位置和數(shù)組本身。

let arrObj = [{
    id: 1,
    name: 'xiaohua'
},{
    id:2,
    name: 'xiaomin'
},{
    id:3,
    name: 'xiaobai'
}]
arrObj.map((item,index,arr)=>{
    console.log(arr) // arrObj
    console.log(index)  // 0 1 2
    console.log(item.name) // xiaohua xiaomin xiaobai
})

七、filter過(guò)濾循環(huán)

filter方法用于過(guò)濾數(shù)組成員,滿足條件的成員組成一個(gè)新數(shù)組返回。它的參數(shù)是一個(gè)函數(shù),所有數(shù)組成員依次執(zhí)行該函數(shù),返回結(jié)果為true的成員組成一個(gè)新數(shù)組返回。該方法不會(huì)改變?cè)瓟?shù)組。

let arrObj = [{
    id: 1,
    name: 'xiaohua'
},{
    id:2,
    name: 'xiaomin'
},{
    id:3,
    name: 'xiaobai'
}]
let arr2 = arrObj.filter((item,index,arr)=>{
    return (item.name === 'xiaohua')
})
console.log(arr2)  // [{id:1,name:'xiaohua}]

ECMAScirpt5 中 Array 類中的 filter 方法使用目的是移除所有的 ”false“ 類型元素  (false, null, undefined, 0, NaN or an empty string):

let arr = [3, 4, 5, 2, 3, undefined, null, 0, ""];
let arrNew = arr.filter(Boolean);
console.log(arrNew)  //  [3, 4, 5, 2, 3]

Boolean 是一個(gè)函數(shù),它會(huì)對(duì)遍歷數(shù)組中的元素,并根據(jù)元素的真假類型,對(duì)應(yīng)返回 true 或 false.

八、Object.keys遍歷對(duì)象的屬性

Object.keys方法的參數(shù)是一個(gè)對(duì)象,返回一個(gè)數(shù)組。該數(shù)組的成員都是該對(duì)象自身的(而不是繼承的)所有屬性名,且只返回可枚舉的屬性。

let obj = {name: 'xiaohua', sex: 'male', age: '28'}
console.log(Object.keys(obj))
// ["name", "sex", "age"]

判斷一個(gè)對(duì)象是否是空對(duì)象,可以用Object.keys(obj).length>0

到此,關(guān)于“javascript有哪些循環(huán)語(yǔ)句”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

名稱欄目:javascript有哪些循環(huán)語(yǔ)句
URL分享:http://vcdvsql.cn/article0/pdegoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、品牌網(wǎng)站制作、標(biāo)簽優(yōu)化網(wǎng)站設(shè)計(jì)公司網(wǎng)頁(yè)設(shè)計(jì)公司、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)