Map
和Object
的区别是什么?
Map和Object都是键值对容器,它俩的区别主要在于key
的类型上。
Object
的key
只能是String
或Symbol
类型,而Map
的key
可以是任意类型。
顺便聊一下WeakMap
,它也是键值对容器,而它的key
只能为Object
类型。
还有一个很重要的点,相信大家可以感受到,Object
的存储是无序的,但Map
的存储是有序的,在遍历过程中会根据值的插入顺序。
Map
和Object
都是JavaScript中的数据结构,都有各自的优缺点,我们应该根据具体的使用场景来选择合适的数据结构。(没有更好,只有更合适)
如果需要存储任意数据类型的键,且需要保持插入顺序,可以选择Map
。
如果只需要存储简单的属性-值对,可以选择Object
。