for of 与 for in 的区别

2026年09月26日 08:33
有1个网友回答
网友(1):

目前所有的内置可迭代对象如下: String 、 Array 、 TypedArray 、 Map 和 Set ,它们的原型对象都实现了 @@``iterator 方法。

可迭代对象必须满足 迭代协议

迭代协议具体分为两个协议: 可迭代协议 和 迭代器协议 。

只有实现了一个拥有以下语义(semantic)的 next() 方法,一个对象才能成为迭代器

对于for...of的循环,可以由 break, throw continue 或return 终止。在这些情况下,迭代器关闭。

for...in 语句以任意顺序迭代对象的 可枚举属性 。

for...of 语句遍历 可迭代对象 定义要迭代的数据。

for...in 会迭代原型链上的所有可枚举属性,如需迭代当前对象的可枚举属性,可以使用 obj.hasOwnProperty(key)进行拦截,并且它不记录值,只记录键

【笔记不易,如对您有帮助,请点赞,谢谢】