for-in 和 for-of

先来看下结果
1.for in 对数组(Array)的遍历

for-in 和 for-of_第1张图片
image.png

2.for in 对对象(Object)的遍历

for-in 和 for-of_第2张图片
image.png

3.for of 对数组(Array)的遍历

for-in 和 for-of_第3张图片
image.png

4.for of 对对象(Object)的遍历

for-in 和 for-of_第4张图片
image.png

所以
for..of适用遍历数/数组对象/字符串/map/set等拥有迭代器对象的集合.但是不能遍历对象,因为没有迭代器对象
for-of循环不支持普通对象,但如果你想迭代一个对象的属性,你可以用for-in循环(这也是它的本职工作)或内建的Object.keys()方法

不要用for-in去遍历数组,为什么?


for-in 和 for-of_第5张图片
image.png

综上所述:
for-in:遍历对象
for-of:遍历数组

for in 在遍历的时候tslint会要加一个判断,用下面这个就好
for (var key in myObject) {
  if(myObject.hasOwnProperty(key)){
    console.log(key);
  }
}


for-in 和 for-of_第6张图片
image.png

你可能感兴趣的:(for-in 和 for-of)