let map = new Map();
let obj = new Object();
一般我在遇到存储key-value的时候都用了obj,但是map更香啊!
1. object是有原型的,原型链上有它自个的键名,如果点到了这个,就不行。map无所谓,给key随意命名。
2. object的key类型只有string和symbol,map不限则。给个函数都可以。
3. object在有些情况下无序(字符串做键的时候进行迭代,会按照插入顺序产生键),map在迭代的时候,以插入顺序返回键值。
4. object没有.length属性进行计数,map.size则可以算出键值对的数量。
5. object 获取到键才能迭代,map直接可以迭代。
6. 增删object就是弟弟。(这条很重要)
注意:要用size属性计数键值对
constructor属性返回的是map函数,这个是什么意思不知。
方法:
增: set(key, value)不可以按照object那样赋值
删:delete(key) 全删 clear()
改:set(key, value)
查:get(key) 有没有has(key)
遍历:forEach(callbackFn[, thisArg])
获取所有key:keys()
获取所有value:values()
以插入顺序获取所有[key, value]:entries()
map的不好地方:太占空间了,插入的时候有点耗用时间。