基本用法
在js中,对象(Object)的本质是键值对,但是它的键只能是字符串,这带来了很多不便。为了解决这个问题,ES6中提供了新的数据结构,Map。 Map和Object最大的区别就是它的key可以是对象。
看下初始化:
|
|
map还可以用数组为参数直接初始化,要求数组中的元素都是标志键值对的数组
|
|
注意事项
因为map和object是如此的相似,本文不再介绍set、get、has、遍历等方法,需要的话直接看下官网API即可。这里提下注意事项,因为key可以是对象了,所以如果key是对象,map寻找key依据key的内存地址,如果是简单类型,还是根据值。
看下例子:
|
|
weakMap
weakMap和weakSet有相似之处,都是为了防止内存泄露而设计,key必须是对象,也只对元素弱引用。