for..of与for..in的区别
时间: 2023-06-08 19:06:30 浏览: 90
for..of 用来遍历可迭代对象(如数组、字符串、Map、Set等),它返回迭代对象的元素值。而 for..in 用来遍历对象的可枚举属性,它返回的是属性名。因此,for..of 适用于遍历值,for..in 适用于遍历对象的属性。
相关问题
for...in和for...of的区别
for...in和for...of都是用于遍历数组或对象的循环语句,但是它们的作用不同。
for...in循环用于遍历对象的属性,返回的是属性名。而for...of循环用于遍历可迭代对象(如数组、字符串、Set、Map等),返回的是元素值。
举个例子,对于一个数组arr,使用for...in循环会返回数组的索引,而使用for...of循环会返回数组的元素值。
for(let i in arr){
console.log(i); //输出数组的索引
}
for(let i of arr){
console.log(i); //输出数组的元素值
}
因此,for...in循环适用于遍历对象的属性,而for...of循环适用于遍历数组等可迭代对象的元素。
for...of与for...in去呗
for...of和for...in都是JavaScript中用于循环的语句,但它们的作用不同。
for...of用于遍历可迭代对象(例如数组、字符串、Map、Set等),并且可以直接访问每个元素的值。例如:
```
const arr = [1, 2, 3];
for (const item of arr) {
console.log(item); // 输出 1、2、3
}
```
for...in用于遍历对象的属性,包括继承自原型链的属性。例如:
```
const obj = {a: 1, b: 2, c: 3};
for (const key in obj) {
console.log(key); // 输出 a、b、c
console.log(obj[key]); // 输出 1、2、3
}
```
需要注意的是,for...in不保证属性的顺序,而且会遍历到所有可枚举的属性,包括原型链上的属性和一些内部属性。因此在使用for...in时需要特别小心。
总的来说,for...of适用于遍历数组和其他可迭代对象,而for...in适用于遍历对象的属性。