js for in for of
时间: 2023-08-18 16:11:56 浏览: 53
`for in` 和 `for of` 都是 JavaScript 中的循环语句,但它们用于遍历不同类型的数据结构。
`for in` 适用于遍历对象的属性,它遍历的是对象的键名(或索引)。
`for of` 适用于遍历可迭代对象(如数组、字符串、Set 等)的值,它遍历的是对象的值。
举个例子:
```
let arr = [3, 5, 7];
arr.foo = "hello";
for (let i in arr) {
console.log(i); // "0", "1", "2", "foo"
}
for (let i of arr) {
console.log(i); // "3", "5", "7"
}
```
因此,在使用for in 遍历数组时还会输出其附加的属性,而for of 遍历的是数组的值,不会输出附加属性.
相关问题
js for in for of
JS中的for...in和for...of都是用于遍历数据结构的循环语句,但是它们的使用场景和遍历方式有所不同。
for...in循环主要用于遍历对象的属性,它会遍历对象自身的可枚举属性以及继承的可枚举属性,但是不包括Symbol类型的属性和不可枚举属性。for...in循环的语法如下:
```
for (variable in object) {
// code to be executed
}
```
其中,variable表示属性名,object表示要遍历的对象。
而for...of循环则主要用于遍历可迭代对象(包括数组、Set、Map、字符串、DOM NodeList对象、Generator对象等),它会遍历对象的可迭代属性,但是不会遍历对象的其他属性。for...of循环的语法如下:
```
for (variable of iterable) {
// code to be executed
}
```
其中,variable表示每次迭代的值,iterable表示要遍历的可迭代对象。
需要注意的是,for...of循环不能遍历普通对象,因为普通对象不是可迭代对象,但是可以使用for...in循环遍历普通对象的属性。此外,for...of循环可以与break、continue和return配合使用,可以随时退出循环。
js forin forof
JavaScript中的for...in和for...of是两种不同的循环语句。
for...in循环用于遍历对象的可枚举属性。它会将对象的每个属性名作为循环变量进行迭代。例如:
```javascript
const obj = { a: 1, b: 2, c: 3 };
for (let prop in obj) {
console.log(prop); // 输出属性名:a, b, c
console.log(obj[prop]); // 输出属性值:1, 2, 3
}
```
需要注意的是,for...in循环遍历的是对象的属性名,而不是属性值。此外,它还会遍历对象继承的可枚举属性。
for...of循环用于遍历可迭代对象(如数组、字符串、Set等)。它会遍历对象的每个可迭代元素,而不是属性名。例如:
```javascript
const arr = [1, 2, 3];
for (let item of arr) {
console.log(item); // 输出数组元素:1, 2, 3
}
```
可以看到,for...of循环更适合用于遍历数组等可迭代对象中的元素。
需要注意的是,for...of循环只能用于可迭代对象,不能直接用于普通对象。如果想要遍历普通对象的属性,可以使用for...in循环。