## 对象属性遍历 #### for..in 遍历对象**自身和继承的** [可枚举属性](https://www.cnblogs.com/kongxy/p/4618173.html) ``` for(let key in obj){} ``` #### Object.keys(obj) 返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含 Symbol 类型的属性) #### Object.getOwnPropertyNames(obj) 返回一个数组,包含对象自身的所有属性(不含 Symbol 类型的属性,不包含继承属性,但是包括不可枚举属性) #### Object.getOwnPropertySymbols(obj) 返回一个数组,包含对象自身的所有 Symbol 类型的属性(不包括继承的属性) #### Reflect.ownKeys(obj) 返回一个数组,包含对象自身的所有属性(包含 Symbol 类型的属性,还有不可枚举的属性,但是不包括继承的属性) ## 数组遍历 #### 最基本的 for 循环、while 循环遍历(缺陷是多添加了一个计数变量) #### for…of ``` for(let value of arr){ console.log(value); } ``` #### Array.prototype.forEach() 对数组的每个元素执行一次提供的函数 #### Array.prototype.map() 返回一个新数组,每个元素都是回调函数返回的值