for...of 与 for...in区别

52 阅读1分钟

1、内容不同:for...in遍历拿到key;而for...of遍历拿到值;

2、顺序:for...in顺序不定;for...of顺序确定

3、范围:for...in可遍历对象、数组;for...of遍历对象报错,但可遍历数组、字符串、Map、Set等

总结:for...in相比for...of性能差,原因是for...in不仅遍历自身可枚举属性,还会遍历对象的原型链,因此可用object.hasOwnProperty(keyname)进行过滤;