美文网首页
for...of 笔记

for...of 笔记

作者: 不知道的是 | 来源:发表于2018-12-07 17:03 被阅读0次

for...of为什么不能遍历Object对象

因为能够被 for...of 正常遍历的,都需要实现一个遍历器 Iterator。而数组、字符串、Set、Map结构,早就内置好了 Iterator(迭代器),它们的原型中都有一个 Symbol.iterator 方法,而 Object 对象并没有实现这个接口,使得它无法被 for...of 遍历。

console.log(Array.prototype[Symbol.iterator])
 
console.log(String.prototype[Symbol.iterator])
 
console.log(Set.prototype[Symbol.iterator])
 
console.log(Map.prototype[Symbol.iterator])
 
console.log(Object.prototype[Symbol.iterator])
image.png

Codepen: https://codepen.io/MonguDykrai/pen/RqdVxv

Object

const obj = {a:1, b:2}

console.log(obj)

for (let k of obj) {
  console.log(k)
}
image.png image.png

Codepen: https://codepen.io/MonguDykrai/pen/wQOdMb

Array

const arr = [1, 2]

console.log(arr)

for (let v of arr) {
  console.log(v)
}
image.png

Codepen: https://codepen.io/MonguDykrai/pen/zMbwKw

for...of 循环结束的条件 next 的返回值包含 done: true

for_of遍历结束的条件done_true1.gif

Codepen: https://codepen.io/MonguDykrai/pen/rQRZQV

参考资料:
http://es6.ruanyifeng.com/#docs/iterator

相关文章

  • for...of 笔记

    for...of为什么不能遍历Object对象 因为能够被 for...of 正常遍历的,都需要实现一个遍历器 I...

  • JavaScript for...in和for...of的区别

    for...in for...of的区别 for...in 循环的是key; for...of 循环的是value...

  • 第22周技术周报

    1. for...of VS for...in的用法 for...of是用于遍历实现了Iterator接口的元素 ...

  • 数组去重

    输入两个数组 双层for循环 for...of + includes for...of 中遍历的是value值fo...

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

    一、for...of 1.定义 for...of 语句遍历可迭代对象(包括数组、Set 和 Map 结构、argu...

  • ECMAScript之for...of与Iterator

    先说for...of再说Iterator。 for...of循环 谁更简单更容易理解?想想你当初理解for循环的时...

  • for...of 小记

    在使用for...of时如何拿到下标呢? Chrome 中 for...of 要比 forEach 快一些哦(在一...

  • 002|JavaScript ES6新特性之迭代器

    for...of 我们知道for...in可以用于遍历对象属性名key,而for...of则可以遍历容器的valu...

  • for...in 与for...of

    for...in循环读取键名,for...of循环读取键值。for...of遍历数组时,只返回具有数字索引的属性。...

  • for...in,for...of

    主要用来遍历数组和字符串,对象也可以 for...in方法针对的是有没有下标数组的情况,也适用于对象的循环遍历;f...

网友评论

      本文标题:for...of 笔记

      本文链接:https://www.haomeiwen.com/subject/jhyycqtx.html