上海做手机网站建设,高端品牌网站建设哪家好,青岛app开发公司,大连建设网上级部门是沈阳吗文章目录forEach循环for–in循环for-of循环for-of循环使用例子#xff1a;循环一个数组(Array):循环一个字符串#xff1a;循环一个类型化的数组(TypedArray)#xff1a;循环一个Map:循环一个 Set:循环一个 DOM collection循环一个拥有enumerable属性的对象循环一个生成器(g…
文章目录forEach循环for–in循环for-of循环for-of循环使用例子循环一个数组(Array):循环一个字符串循环一个类型化的数组(TypedArray)循环一个Map:循环一个 Set:循环一个 DOM collection循环一个拥有enumerable属性的对象循环一个生成器(generators)JavaScript诞生已经有20多年了我们一直使用的用来循环一个数组的方法是这样的for (var index 0; index myArray.length; index) {console.log(myArray[index]);
}forEach循环
自从JavaScript5起我们开始可以使用内置的forEach方法
myArray.forEach(function (value) {console.log(value);
});写法简单了许多但也有短处你不能中断循环(使用break语句或使用return语句。
for–in循环
JavaScript里还有一种循环方法for–in。
for-in循环实际是为循环”enumerable“对象而设计的
var obj {a:1, b:2, c:3};for (var prop in obj) {console.log(obj. prop obj[prop]);
}// 输出:
// obj.a 1
// obj.b 2
// obj.c 3你也可以用它来循环一个数组
for (var index in myArray) { // 不推荐这样console.log(myArray[index]);
}不推荐用for-in来循环一个数组因为不像对象数组的index跟普通的对象属性不一样是重要的数值序列指标。
总之for–in是用来循环带有字符串key的对象的方法。
for-of循环
JavaScript6里引入了一种新的循环方法它就是for-of循环它既比传统的for循环简洁同时弥补了forEach和for-in循环的短板。
我们看一下它的for-of的语法
for (var value of myArray) {console.log(value);
}for-of的语法看起来跟for-in很相似但它的功能却丰富的多它能循环很多东西。
for-of循环使用例子
循环一个数组(Array):
let iterable [10, 20, 30];for (let value of iterable) {console.log(value);
}
// 10
// 20
// 30我们可以使用const来替代let这样它就变成了在循环里的不可修改的静态变量。
let iterable [10, 20, 30];for (const value of iterable) {console.log(value);
}
// 10
// 20
// 30循环一个字符串
let iterable boo;for (let value of iterable) {console.log(value);
}
// b
// o
// o循环一个类型化的数组(TypedArray)
let iterable new Uint8Array([0x00, 0xff]);for (let value of iterable) {console.log(value);
}
// 0
// 255循环一个Map:
let iterable new Map([[a, 1], [b, 2], [c, 3]]);for (let [key, value] of iterable) {console.log(value);
}
// 1
// 2
// 3for (let entry of iterable) {console.log(entry);
}
// [a, 1]
// [b, 2]
// [c, 3]循环一个 Set:
let iterable new Set([1, 1, 2, 2, 3, 3]);for (let value of iterable) {console.log(value);
}
// 1
// 2
// 3循环一个 DOM collection
比如NodeList之前我们讨论过如何循环一个NodeList现在方便了可以直接使用for-of循环
// Note: This will only work in platforms that have
// implemented NodeList.prototype[Symbol.iterator]
let articleParagraphs document.querySelectorAll(article p);for (let paragraph of articleParagraphs) {paragraph.classList.add(read);
}循环一个拥有enumerable属性的对象
for–of循环并不能直接使用在普通的对象上但如果我们按对象所拥有的属性进行循环可使用内置的Object.keys()方法
for (var key of Object.keys(someObject)) {console.log(key : someObject[key]);
}循环一个生成器(generators)
我们可循环一个生成器(generators):
function* fibonacci() { // a generator functionlet [prev, curr] [0, 1];while (true) {[prev, curr] [curr, prev curr];yield curr;}
}for (let n of fibonacci()) {console.log(n);// truncate the sequence at 1000if (n 1000) {break;}
}