這篇文章主要講解了“JavaScript中怎么使用for循環(huán)語(yǔ)句”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“JavaScript中怎么使用for循環(huán)語(yǔ)句”吧!
創(chuàng)新互聯(lián)建站-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比寶應(yīng)網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式寶應(yīng)網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋寶應(yīng)地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴(lài)。
這大概是應(yīng)用最廣的循環(huán)語(yǔ)句了吧,簡(jiǎn)單實(shí)用,且大多數(shù)時(shí)候性能還是在線(xiàn)的,唯一的缺點(diǎn)大概就是太普通,沒(méi)有特色,導(dǎo)致很多人現(xiàn)在不愿用它。
const array = [4, 7, 9, 2, 6]; for (let index = 0; index < array.length; index++) { const element = array[index]; console.log(element); } // 4, 7, 9, 2, 6
for...in 語(yǔ)句可以以任意順序遍歷一個(gè)對(duì)象的除 Symbol 以外的可枚舉屬性。
const temp = {name: "temp"}; function Apple() { this.color = 'red'; } Apple.prototype = temp; const obj = new Apple(); for (const prop in obj) { console.log(`obj.${ prop } = ${ obj[prop] }`); } // obj.color = red // obj.name = temp
如果你只要考慮對(duì)象本身的屬性,而不是它的原型,那么使用 getOwnPropertyNames() 或執(zhí)行 hasOwnProperty() 來(lái)確定某屬性是否是對(duì)象本身的屬性。
const temp = {name: "temp"}; function Apple() { this.color = 'red'; } Apple.prototype = temp; const obj = new Apple(); for (const prop in obj) { if (obj.hasOwnProperty(prop)) { console.log(`obj.${ prop } = ${ obj[prop] }`); } } // obj.color = red
當(dāng)然,也可以用來(lái)遍歷數(shù)組。
const arr = [1, 2, 3, 4, 5]; for (const key in arr) { console.log(key) } // 0,1,2,3,4
使用 for...in 可以遍歷數(shù)組,但是會(huì)存在以下問(wèn)題:
index 索引為字符串型數(shù)字(注意,非數(shù)字),不能直接進(jìn)行幾何運(yùn)算。
遍歷順序有可能不是按照實(shí)際數(shù)組的內(nèi)部順序(可能按照隨機(jī)順序)。
所以一般不建議使用 for...in 來(lái)遍歷數(shù)組。
for...of 語(yǔ)句在可迭代對(duì)象(包括 Array,Map,Set,String,TypedArray,arguments 對(duì)象等等)上創(chuàng)建一個(gè)迭代循環(huán),調(diào)用自定義迭代鉤子,并為每個(gè)不同屬性的值執(zhí)行語(yǔ)句。
const array = ['a', 'b', 'c']; for (const element of array) { console.log(element); } // a // b // c
for...of 和 for...in 的區(qū)別:
for...in 語(yǔ)句以任意順序迭代對(duì)象的可枚舉屬性。
for...of 語(yǔ)句遍歷可迭代對(duì)象定義要迭代的數(shù)據(jù)。
Object.prototype.objCustom = function () { }; Array.prototype.arrCustom = function () { }; let iterable = [3, 5, 7]; iterable.foo = 'hello'; for (const key in iterable) { console.log(key); // logs 0, 1, 2, "foo", "arrCustom", "objCustom" } // 0, 1, 2, "foo", "arrCustom", "objCustom" for (const key of iterable) { console.log(key); } // 3, 5, 7
使用 for...of 遍歷 Map 結(jié)構(gòu):
let nodes = new Map(); nodes.set("node1", "t1") .set("node2", "t2") .set("node3", "t3"); for (const [node, content] of nodes) { console.log(node, content); } // node1 t1 // node2 t2 // node3 t3
可以看出,使用 for...of 遍歷 Map 結(jié)構(gòu)還是挺方便的,推薦使用!
感謝各位的閱讀,以上就是“JavaScript中怎么使用for循環(huán)語(yǔ)句”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)JavaScript中怎么使用for循環(huán)語(yǔ)句這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!