什么是Map:Map对象存储键值对。任何值(对象或基元)都可以用作键或值。语法:newMap([iterable])对象和映射的区别:对象和映射的相似之处在于它们都允许您通过键访问值、删除键以及检测键是否绑定到值。因此,我们一直把对象当作Map使用,但是现在有了Map,下面的区别解释了为什么用Map更好。一个对象通常有它自己的原型,所以一个对象总是有一个“原型”键。但是,自ES5以来,可以使用map=Object.create(null)来创建没有原型的对象。对象的键只能是字符串或符号,但映射的键可以是任何值。通过size属性可以很容易的得到一个Map的key-value对的个数,而一个object的key-value对的个数只能手动确认。但这并不意味着你可以随意使用Map,对象仍然是最常用的。如果您不确定使用哪个,请考虑以下问题:运行前密钥是否未知,是否需要动态查询密钥?所有的值都是同一类型的,值是可以互换的吗?key不是必须的字符串类型吗?是否经常添加或删除键值对?是否有可以轻松更改的任意数量的键值对?这个集合可以遍历吗?如果以上都是“是”,那么就需要用一个Map来存储这个集合。相反,你有固定数量的键值对,独立操作它们,区分它们的用法,那么你需要的就是对象。
