for...in和for...of
- 一、for...in(es3)--遍历对象属性
- 二、for...of(es6新增)--遍历集合中的元素
一、for…in(es3)–遍历对象属性
for...in 用于遍历对象的可枚举属性
(包括从原型链继承的属性)。- 它返回的是
属性的键(key)
,而不是值(value) 不推荐用 for...in 遍历数组
,因为数组的索引是字符串形式,且可能遍历到非数字键或继承的属性- 在for…in里面获取对象的属性值要使用动态属性名,即
obj[key]
let person = {name: "Tom",age: 25};for (let key in person) {console.log(key); console.log(person[key]); console.log(person.key); }
二、for…of(es6新增)–遍历集合中的元素
for...of 用于遍历可迭代对象
(Iterable),直接获取属性的值(value)
- 它适用于数组、字符串、Map、Set、NodeList 等数据结构。
- 不会遍历原型链上的属性
var obj = {0:'one',1:'two',length: 2
};
obj = Array.from(obj);
for(var k of obj){console.log(k);
}