map和object区别

MapObject的区别是什么?

Map和Object都是键值对容器,它俩的区别主要在于key的类型上。

键值对

Objectkey只能是StringSymbol类型,而Mapkey可以是任意类型。

顺便聊一下WeakMap,它也是键值对容器,而它的key只能为Object类型。

还有一个很重要的点,相信大家可以感受到,Object的存储是无序的,但Map的存储是有序的,在遍历过程中会根据值的插入顺序。

MapObject都是JavaScript中的数据结构,都有各自的优缺点,我们应该根据具体的使用场景来选择合适的数据结构。(没有更好,只有更合适)

如果需要存储任意数据类型的键,且需要保持插入顺序,可以选择Map

如果只需要存储简单的属性-值对,可以选择Object