for in和for of的区别

154 阅读1分钟

for infor of是两种常见的循环语句,它们在使用上有以下区别:

  • 循环对象属性时,for in会遍历所有可枚举的属性,包括原型链上的属性,而for of则不能遍历对象,只能遍历带有迭代器接口的对象,如Set、Map、String、Array等。
  • 循环数组时,for in会遍历数组的索引,而for of则会遍历数组的每一项的值。

需要注意的是,for in循环会遍历对象的所有可枚举属性,包括从原型链上继承的属性,而for of循环则不会遍历原型链上的属性。如果需要遍历对象自身的属性,可以结合hasOwnProperty()方法进行判断。