(自用面试题)Object、Map的区别是什么?

236 阅读1分钟
  1. 键的类型
    Object的键只能是String或者Symbol;Map的键可以是各种类型的值,包括对象。

  2. 键的顺序
    Object的键是无序的;Map的键是有序的。

  3. 键值对个数计算方式
    Object的键值对个数只能手动计算;Map的键值对个数可以轻松地通过size属性获取。

  4. 是否是可迭代的数据
    Object不是可迭代的数据,不能用for...of遍历;Map是可迭代的数据,能用for...of遍历。

  5. 是否解决了同名属性碰撞(clash)的问题
    Object没有解决同名属性碰撞的问题;Map的键实际上是跟内存地址绑定的,只要内存地址不一样,就视为两个键,因此Map解决了同名属性碰撞的问题。