js forin forof
时间: 2023-10-18 16:25:46 浏览: 145
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循环。
相关问题
js for in for of
`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
当使用JavaScript编程时,我们经常需要遍历数组或对象中的元素。在这种情况下,可以使用`for...in`和`for...of`循环来实现遍历。
`for...in`循环用于遍历对象的可枚举属性。它会迭代对象的所有可枚举属性,包括继承的属性。语法如下:
```javascript
for (variable in object) {
// code to be executed
}
```
其中,`variable`是一个变量,用于存储每次迭代中的属性名。`object`是要遍历的对象。
下面是一个使用`for...in`循环遍历对象的示例:
```javascript
const person = {
name: 'John',
age: 30,
gender: 'male'
};
for (let key in person) {
console.log(key + ': ' + person[key]);
}
```
输出结果为:
```
name: John
age: 30
gender: male
```
`for...of`循环用于遍历可迭代对象(如数组、字符串、Set、Map等)。它会迭代对象的每个元素,而不包括对象的属性。语法如下:
```javascript
for (variable of iterable) {
// code to be executed
}
```
其中,`variable`是一个变量,用于存储每次迭代中的元素值。`iterable`是要遍历的可迭代对象。
下面是一个使用`for...of`循环遍历数组的示例:
```javascript
const numbers = [1, 2, 3, 4, 5];
for (let number of numbers) {
console.log(number);
}
```
输出结果为:
```
1
2
3
4
5
```
需要注意的是,`for...of`循环只能用于可迭代对象,而不能用于普通的对象。如果要遍历普通对象的属性,仍然需要使用`for...in`循环。
阅读全文