for...in
用于遍历对象,返回对象属性的键名,如果是遍历数组返回的是数组的索引,且索引类型为string。
var obj={a:1,b:2};for(var i in obj){console.log(i)}
//a b
var mapdemo = [1,2,3];for(var i in mapdemo){console.log(i)}
//0 1 2
for...of
遍历数组元素的值,不包含数组原型和索引for of
适用遍历数/数组对象/字符串/map
/set
等拥有迭代器对象(iterator
)的集合,但是不能遍历对象,因为没有迭代器对象,但如果想遍历对象的属性,你可以用for in
循环(这也是它的本职工作)或用内建的Object.keys()
方法
for...of遍历数组时和forEach功能一样