js

可迭代性

  1. 可以很好的被作为一个可迭代对象
    1. 不像Object那样不适合迭代
    2. 记住插入的顺序

易用性

  1. Map可以和数组轻易相互转换

键的类型

  1. Map任意值(包括对象)都可以作为键⭐
  2. 一个Object的键必须是一个 字符串 或是Symbol

意外的键

  • 一个Object有一个原型, 原型链上的键名有可能和你自己在对象上的设置的键名产生冲突。
  • Map默认情况不包含任何键。只包含显式插入的键。

大小

  • Map的键值对个数可以轻易地通过size 属性获取⭐
  • Object的键值对个数只能手动计算

性能:

  1. 新增键值对的速度和内存占用比Object优秀50%左右
  2. 删除键值对的速度和Object基本差不多
  3. 查找键值对的速度和Object基本差不多