for…in 和 for…of的区别?

for…in 遍历对象获取的是对象的键名,for…in 遍历数组获取的是数组的索引值。for…of 遍历对象报错:obj is not iterable,for…of遍历数组得到的是数组的每一项值。for…in会遍历对象的整个原型链,性能非常差不推荐使用。而for…of 只遍历当前对象不会遍历原型链。对于数组的遍历,for…in 会返回数组中所有可枚举的属性(包括原型链上可枚举的属性),for…of 只返回数组的下标对应的属性值。

总结:for…in循环主要是为了遍历对象而生,不适用遍历数组。 for…of 循环可以用来遍历数组、类数组对象、字符串、Set、Map以及Generator对象。

发表评论