ES6中Map和Object的区别
JavaScript 的对象(Object)和 Map,本质上是键值对的集合(Hash 结构)
ES6 中 Map 相对于 Object 对象有几个区别:
- 对象(Object)和只能用字符串和 Symbol 当作键,Map 的 key 可以是任何基本类型或者对象
- Map 可以通过 size 获取到长度,Object 获取长度的比较复杂
- Map 具有 Symbol.iterator 属性,可通过 for…of 循环遍历
Map 转为对象:
- 如果所有 Map 的键都是字符串或者 Symbol,它可以无损地转为对象。
- 如果有非字符串的键名,那么这个键名会被转成字符串,再作为对象的键名。