js中for of 和for in
时间: 2023-10-31 11:30:24 浏览: 42
的区别是什么?
for ... of 用于遍历具有 iterable 特性的数据结构(如数组、字符串、Map、Set等),遍历时返回值为元素的值本身。而 for ... in 则用于遍历对象的属性名(包括可枚举的自有属性和继承属性),返回值为属性名。
笑话:为什么程序员总喜欢用奇怪的命名方式?因为这样可以让同事读代码时产生阅读恐惧症。
相关问题
js中for in 和for of
在 JavaScript 中,`for...in` 和 `for...of` 是用于遍历数据的两种不同的循环结构。
`for...in` 循环用于遍历对象的可枚举属性。它会迭代对象的所有可枚举属性(包括原型链上的属性),并将每个属性的键(key)存储在变量中。这个循环适用于遍历对象,而不是数组或类似数组的结构。
以下是 `for...in` 循环的语法:
```javascript
for (variable in object) {
// statements
}
```
示例:
```javascript
const obj = { a: 1, b: 2, c: 3 };
for (let key in obj) {
console.log(key); // 输出:a, b, c
console.log(obj[key]); // 输出:1, 2, 3
}
```
`for...of` 循环用于遍历可迭代对象(如数组、字符串、Set、Map 等)。它会迭代对象中的每个元素,并将每个元素的值存储在变量中。这个循环适用于遍历有序集合。
以下是 `for...of` 循环的语法:
```javascript
for (variable of iterable) {
// statements
}
```
示例:
```javascript
const arr = [1, 2, 3];
for (let value of arr) {
console.log(value); // 输出:1, 2, 3
}
```
需要注意的是,`for...of` 循环在遍历对象时无法直接使用,因为对象不是可迭代对象。如果要遍历对象的属性,可以使用 `Object.keys()` 方法或结合 `for...in` 循环来实现。
js中for in 和for of的区别
在JavaScript中,`for...in`和`for...of`是两种不同的循环结构,用于遍历集合或数组中的元素。它们在使用方式和遍历对象上有一些不同之处。
1. `for...in`循环:
- 用于遍历对象的属性,而不是数组或集合的元素。
- 循环变量表示的是对象的属性名称或键。
- 循环过程中会遍历所有可枚举的属性,包括继承自原型链的属性。
- 循环顺序是不确定的,可能不按照属性的顺序进行遍历。
示例:
```javascript
let obj = { a: 1, b: 2, c: 3 };
for (let prop in obj) {
console.log(prop); // 输出:a, b, c
}
```
2. `for...of`循环:
- 用于遍历可迭代对象(如数组、字符串、Set、Map等)的元素。
- 循环变量表示的是集合中的每个元素本身。
- 循环过程中只会遍历集合自身的元素,不会包括原型链上的属性或方法。
- 循环顺序是有序的,按照集合元素的顺序进行遍历。
示例:
```javascript
let arr = [1, 2, 3];
for (let element of arr) {
console.log(element); // 输出:1, 2, 3
}
```
总结:
- `for...in`适用于遍历对象的属性。
- `for...of`适用于遍历可迭代对象的元素。
- `for...in`遍历属性,`for...of`遍历元素。