JS中Map和Object的差异对比

Map用于保存键值对(并能记忆 键 的原始插入顺序),在JS中任何值都可以作为Map对象中的一个键或值。

Object和Map的相似之处:它们都可以按照键来增删改查一个值。(在Map这一数据类型出现之前,Object充当着Map的作用)

 

Map 与 Object 的区别:

  Map Object
是否包含初始键值 不包含 包含(继承至原型上的键值)
键的类型 任意值 仅限String或Symbol类型
键名排列是否有序 有序(键被添加时的顺序) 有序(但排序规则比较复杂)
键名个数的获取方式 通过Map对象自带的size属性 没有原生获取键名个数的方式
可迭代性 支持 不支持(未实现迭代协议)
性能 在频繁增删键值对的场景下表现良好 未对增、删操作进行优化
是否支持序列化与反序列化(JSON) 不支持 支持

 

posted @ 2022-06-24 16:29  樊顺  阅读(265)  评论(0编辑  收藏  举报