共同点:
都是键值对(key-value)
区别:
-
map的key更强大,Objec只能使用字符串值作为键名,但Map的键名可以是任意类型
-
map遍历方式比object强;object必须将它们转换为数组,如使用Object.keys(), Object.values()和Object.entries(), 再使用for … in,另外for … in循环。另外还有一些限制:它仅仅遍历可枚举属性、非Symbol属性,并且遍历的顺序是任意的,如遍历key,eg:
object遍历:
let object={'a':1,'b':2} Object.keys(object).forEach(element => { console.log(element) });
结果:
a b
map遍历:
let object2=new Map([['a',1],['b',2]]) object2.keys() console.log(typeof object2.keys())
结果:
a b object