关于javascript迭代

51 阅读1分钟

关于javascript中的迭代,主要说一下自己的理解,如下:

一、关于Symbol

  1. 这是ES6才开始有的js数据类型,这是一个可以作为对象属性的具有唯一性标识的数据类型
  2. 所以,Symbol特别适合作为对象的属性,Symbol保证了对象属性的唯一性。
  3. Symbol不支持包装类型创建数据,因为ES6之后也不支持了

image.pngimage.png

二、关于Symbol.iterator

  1. Symbol.iterator决定了数据是迭代的
  2. Map、Set、Array、String等可以迭代,因为其原型均存在Symbol.iterator方法
  3. 该方法可以被for...of迭代获取(字符串也可以被迭代)
  4. 可迭代的并不是可以像数组一样通过索引访问,但是可以通过先变成数组再访问

image.pngimage.png

三、关于spread和rest

  1. spread对应的是对象解构赋值
  2. rest对应的是函数的剩余参数
  3. 都是三个点...的语法,但是意义不同
  4. spread和rest语法都要放在最后,否则会报错

image.pngimage.png