Set和Map的区别,以及WeakMap和WeakSet的区别。

Set和Map的特点区别

  1. Set不允许值重复,Map不允许键名重复(实际上Set的键名等于值),因此可以用new Set([...arr])来对数组进行去重
  2. 不能使用for循环对二者进行遍历,二者内部提供三个遍历器生成函数:keys()、values()和entries(),和一个遍历方法forEach
  3. Map的键不能修改,只能修改值
  4. WeakMap和Map的区别:
    1. WeakMap只接受除了null以外的对象作为键名;
    2. 键名指向的对象为弱引用,不计入垃圾回收机制;
  5.  WeakSet和Set的区别:
    1. WeaSet的成员只能是对象;
    2. 不计入垃圾回收机制

你可能感兴趣的:(前端,javascript)