for...in 和 for...of 都是 JS 中的循环语句,用于遍历数组或对象中的元素。它们两个的区别在于,for...in 用于遍历对象中的属性名称,而 for...of 则用于遍历数组和类数组对象中的元素。
1、for...in:循环语句用于遍历对象中的所有可枚举属性名称,语法如下:
for (variable in object) {
// 在这里执行代码
}
其中,variable 是一个变量名,用于指定在每次迭代中将会获取对象的一个属性名称,object 则是需要遍历的对象。例如,我们可以使用 for...in 来遍历一个对象中的所有属性,并打印出其值:
const person = { name: 'Alice', age: 18, gender: 'female' };
for (let prop in person) {
console.log(prop + ': ' + person[prop]);
}
输出结果为:
name: Alice
age: 18
gender: female
2、for...of:循环语句用于遍历可迭代对象(包括数组、字符串、Map、Set 等),语法如下:
for (variable of iterable) {
// 在这里执行代码
}
其中,variable 是一个变量名,用于指定在每次迭代中将会获取到的元素值,iterable 则是需要遍历的对象。例如,我们可以使用 for...of 来遍历一个数组中的所有元素,并打印出其值:
const arr = [1, 2, 3, 4, 5];
for (let item of arr) {
console.log(item);
}
输出结果为:
1
2
3
4
5
需要注意的是,for...of 循环只能遍历可迭代对象中的值,无法获取它们的索引或属性名称。如果需要获取索引或属性名称,可以使用 array.keys() 或 array.entries() 方法来获取一个包含索引/名称和值的数组对象。