map,wekmap以及set ,wekset的区别
首先我们来看一下整体的区别:
Map——本质上是键值对的集合,类似集合;可以遍历,方法很多,可以跟各
种数据格式转换。
WeakMap——只接受对象最为键名(null 除外),不接受其他类型的值作为键
名;键名是弱引用,键值可以是任意的,键名所指向的对象可以被垃圾回收,
此时键名是无效的,但是要注意,键值是被键名引用的,不可以被垃圾回收机制会回收的;不能遍历,方法有 get、set、has、delete。
Set——对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用
WeakSet——成员都是对象;成员都是弱引用,可以被垃圾回收机制回收,可以用来保存 DOM 节点,不容易造成内存泄漏;
Map我们在使用的过程中,我们是经常会去拿map和object来比较,在一般情况下二者的使用是差不多的,但是也会存在以下的几点区别:
1 Object只能使用数值、字符串或符号作为键不同,Map可以使用任何JavaScript数据类型作为键。
const m = new Map();
const functionKey = function() {
};
const symbolKey = Symbol();
const objectKey =