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)
							 |