88 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						||
title: For...Of Loop
 | 
						||
localeTitle: 对于...... Of Loop
 | 
						||
---
 | 
						||
`for...of`语句创建循环遍历可迭代对象(包括Array,Map,Set,Arguments对象等),调用自定义迭代挂钩,其中包含要为每个不同属性的值执行的语句。
 | 
						||
 | 
						||
```javascript
 | 
						||
    for (variable of object) { 
 | 
						||
        statement 
 | 
						||
    } 
 | 
						||
```
 | 
						||
 | 
						||
| |说明| | ---------- | ------------------------------------- | |变量|在每次迭代时,将不同属性的值分配给变量。 | |对象|迭代其可枚举属性的对象。 |
 | 
						||
 | 
						||
## 例子
 | 
						||
 | 
						||
### 排列
 | 
						||
 | 
						||
```javascript
 | 
						||
    let arr = [ "fred", "tom", "bob" ]; 
 | 
						||
 
 | 
						||
    for (let i of arr) { 
 | 
						||
        console.log(i); 
 | 
						||
    } 
 | 
						||
 
 | 
						||
    // Output: 
 | 
						||
    // fred 
 | 
						||
    // tom 
 | 
						||
    // bob 
 | 
						||
```
 | 
						||
 | 
						||
### 地图
 | 
						||
 | 
						||
```javascript
 | 
						||
    var m = new Map(); 
 | 
						||
    m.set(1, "black"); 
 | 
						||
    m.set(2, "red"); 
 | 
						||
 
 | 
						||
    for (var n of m) { 
 | 
						||
        console.log(n); 
 | 
						||
    } 
 | 
						||
 
 | 
						||
    // Output: 
 | 
						||
    // 1,black 
 | 
						||
    // 2,red 
 | 
						||
```
 | 
						||
 | 
						||
### 组
 | 
						||
 | 
						||
```javascript
 | 
						||
    var s = new Set(); 
 | 
						||
    s.add(1); 
 | 
						||
    s.add("red"); 
 | 
						||
 
 | 
						||
    for (var n of s) { 
 | 
						||
        console.log(n); 
 | 
						||
    } 
 | 
						||
 
 | 
						||
    // Output: 
 | 
						||
    // 1 
 | 
						||
    // red 
 | 
						||
```
 | 
						||
 | 
						||
### 参数对象
 | 
						||
 | 
						||
```javascript
 | 
						||
    // your browser must support for..of loop 
 | 
						||
    // and let-scoped variables in for loops 
 | 
						||
 
 | 
						||
    function displayArgumentsObject() { 
 | 
						||
        for (let n of arguments) { 
 | 
						||
            console.log(n); 
 | 
						||
        } 
 | 
						||
    } 
 | 
						||
 
 | 
						||
 
 | 
						||
    displayArgumentsObject(1, 'red'); 
 | 
						||
 
 | 
						||
    // Output: 
 | 
						||
    // 1 
 | 
						||
    // red 
 | 
						||
```
 | 
						||
 | 
						||
# 其他资源:
 | 
						||
 | 
						||
*   [MDN链接](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/for…of)
 | 
						||
*   [MSDN链接](https://msdn.microsoft.com/library/dn858238%28v=vs.94%29.aspx?f=255&MSPPError=-2147217396)
 | 
						||
*   [参数@@ iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments/@@iterator) |