js for in for of
时间: 2023-11-16 14:55:55 浏览: 34
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循环。
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`循环。