(js的for循环) 一文带你搞懂JS中六种For循环的使用
JS(JavaScript)中的六种for循环的使用
- 普通for循环
for (var i = 0; i < 10; i++) { console.log(i); }
- 这是最经典的for循环,通过初始化变量,条件判断,和迭代步进来执行代码块。
- for…in循环
var obj = {a: 1, b: 2, c: 3}; for (var prop in obj) { if (obj.hasOwnProperty(prop)) { // 确保prop是obj自身的属性而不是继承的 console.log(prop + " = " + obj[prop]); } }
- 用于遍历对象的属性。注意检查属性是否是对象自身的。
- for…of循环
var arr = [3, 5, 7]; arr.foo = "hello"; for (var i of arr) { console.log(i); // 输出 3, 5, 7 }
ES6引入的新循环方式,用于遍历数组、字符串、Map、Set等可迭代的数据结构。
for await...of循环(ES2018)
async function process(array) {
for await (let item of array) {
doSomething(item);
}
}
-
- 用于异步遍历可迭代的对象,如异步生成器函数。
- forEach循环
[1, 2, 3].forEach(function (item, index) { console.log(item, index); });
- for…of循环与解构
var arr = [[1,2], [3,4], [5,6]]; for (var [a, b] of arr) { console.log(a, b); }
与解构赋值结合,可以直接从数组或对象中提取值。
要注意的是,for...in 应谨慎用于数组,因为它会遍历数组对象的所有可枚举属性,包括原型链上的。而 for...of 是针对数组和其他可迭代对象的值的循环。 对于 for...in 和 for...of 循环,建议始终在循环内检查属性的有效性,以避免意外行为,尤其是在处理不受你控制的对象时。
使用这些循环时,注意选择适合你用例的循环类型,并确保你的循环逻辑正确处理了你要操作的数据结构。