js中for in和for of的区别
文章类型:Javascript
发布者:admin
发布时间:2023-04-05
for...in 和 for...of 都是 JavaScript 中用于循环遍历数组和对象的语句,但是它们的作用有所不同。
一:区别
类型上:
1:遍历对象上:for in可以,for of不可以
2:遍历Map Set上:for of可以,for in不可以
3:遍历generator上:for of可以,for in不可以
可枚举vs可迭代上:
1:for in 用于可枚举的数据,如对象、数组、字符串,得到key
2:for of 用于可迭代的数据,如数组、字符串、Map、Set、generator,得到value
二:总结
1:for...in 循环遍历的是对象的属性名,而 for...of 循环遍历的是可迭代对象的值
2:在遍历数组等可迭代对象时,建议使用 for...of 循环,而不是 for...in 循环
3:for...of 循环只能用于遍历可迭代对象,而不能用于遍历普通对象
三:代码
const obj = { a: 1, b: 2, c: 3 };
for (let key in obj) {
console.log(key + ": " + obj[key]);
}
const arr = [1, 2, 3];
for (let value of arr) {
console.log(value);
}