for of、for in、forEach、map、Object.keys、Object.values、Object.entries 区别
for of
• 可以中断循环。
• 具有 iterator 接口,就可以用 for...of 循环遍历它的成员(属性值)。
• 循环调用遍历器接口,数组的遍历器接口只返回具有数字索引的属性。
• 无法遍历 不可迭代对象(如普通 json 的 object)
• 对于普通的对象,for...of 结构不能直接使用,会报错,必须部署了 Iterator 接口后才能使用。
• 可以使用的范围包括数组、Set 和 Map 结构、某些类似数组的对象、Generator 对象,以及字符串。
• 可迭代对象包括: Array,Map,Set,String,TypedArray,arguments 等等
for in
• 可以中断循环。
• 遍历对象自身的和继承的可枚举的属性, 不能直接获取属性值。
forEach
不能中断
只能遍历数组
可以修改原数组
没有返回值(或认为返回值是 undefined)。
map
不能中断
只能遍历数组
可以修改原数组,返回值是修改后的数组。
Object.keys
Object.values
Object.entries
参考链接
https://es6.ruanyifeng.com/
https://blog.csdn.net/shangyanaf/article/details/80415236
https://www.jianshu.com/p/c43f418d6bf0
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 闭包closure
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论