for in和for of是两种常见的循环语句,它们在使用上有以下区别:
- 循环对象属性时,
for in会遍历所有可枚举的属性,包括原型链上的属性,而for of则不能遍历对象,只能遍历带有迭代器接口的对象,如Set、Map、String、Array等。 - 循环数组时,
for in会遍历数组的索引,而for of则会遍历数组的每一项的值。
需要注意的是,for in循环会遍历对象的所有可枚举属性,包括从原型链上继承的属性,而for of循环则不会遍历原型链上的属性。如果需要遍历对象自身的属性,可以结合hasOwnProperty()方法进行判断。