循環(huán)語句
循環(huán)結(jié)構(gòu)的執(zhí)行步驟
1固以、聲明循環(huán)變量;
2嘱巾、判斷循環(huán)條件;
3憨琳、執(zhí)行循環(huán)體操作;
4旬昭、更新循環(huán)變量篙螟;
5、然后循環(huán)執(zhí)行2-4问拘,直到條件不成立遍略,跳出循環(huán)。
1.基礎(chǔ)for循環(huán)
var arr = ["中國","英國","美國","法國"]
for(var i = 0 ; i < arr.length; i ++){
document.write(arr[i] + "</br>")
}
// 輸出
中國
英國
美國
法國
2.for in循環(huán)
用于遍歷對(duì)象的屬性骤坐,數(shù)組的索引值也算屬性
var arr = ["中國","英國","美國","法國"]
var objArr = [{name:"曹雪芹",book:"紅樓夢(mèng)"},{name:"施耐庵",book:"水滸傳"}]
for(x in objArr){
document.write(x.name) // 曹雪芹 施耐庵
}
var person = {name:"王辰",age:16}
for(x in person){
document.write(person[x]) // 王辰 16
}
var objArr = [{name:"曹雪芹",book:"紅樓夢(mèng)"},{name:"施耐庵",book:"水滸傳"}]
for(x in objArr){
document.write(objArr[x].name) // 曹雪芹 施耐庵
}
如果接口獲取較多的數(shù)據(jù) 需要一一賦值
var arr1 = {name : "張新",age : 20, work:"repair"}
var arr2 = {name : "", age : 0, work : ""}
for(x in arr1){
// 如果該屬性定義了
if(arr2[x] !== undefined){
// 則進(jìn)行相應(yīng)賦值
arr2[x] = arr1[x]
}
}
document.write('賦值后arr2的name的值:' + arr2.name) // 張新
3.foreach
var countryList = ["中國","英國","美國","法國"]
// 第一種寫法
countryList.forEach(function(v){
document.write(v + "</br>") // 中國 英國 美國 法國
})
// 第二種寫法
countryList.forEach(v =>{
document.write(v + "</br>") // 中國 英國 美國 法國
})
4.for...of(ES6)
一個(gè)數(shù)據(jù)結(jié)構(gòu)只要部署了Symbol.iterator屬性绪杏,就被視為具有iterator接口,就可以用for...of循環(huán)遍歷它的成員纽绍。也就是說蕾久,for...of循環(huán)內(nèi)部調(diào)用的是數(shù)據(jù)結(jié)構(gòu)的Symbol.iterator方法。
for...of循環(huán)可以使用的范圍包括數(shù)組拌夏、Set 和 Map 結(jié)構(gòu)僧著、某些類似數(shù)組的對(duì)象(比如arguments對(duì)象、DOM NodeList 對(duì)象)障簿、后文的 Generator 對(duì)象盹愚,以及字符串。
var arr = ['a','b','c','d']
for(let a in arr){
document.write(a); // 1 2 3 4
}
for(let a of arr){
document.write(a) // a b c d
}