在键的量较大时,Map 对键的增加、删除、查找和遍历性能都比 object 更好。 Map 不适合使用的场景 在需要使用JSON时(因JSON 尚未支持Map,但直接支持Object)
Map 为管理键值对提供了更好的接口。在需要添加和删除条目的场景中,Map 是更好的选择。而如果创建键值集合只是用来搜索键时,对象就够了。
通过对比我们可以发现,空的Object会比空的Map占用更少的内。所以这一轮Object赢得一筹。 新增元素时的性能 测试用的代码如下: 代码语言:javascript 复制 console.clear();letn,n2=5;leto={},m=newMap();// 速度while(n2--){letp1=performance.now();n=10000;while(n--){o[Math.random()]=Math.random...
与插入不同,从大型Object和Map中查找键/值对的性能差异较小,但如果只包含少量键/值对,则Object有时候速度更快。在把Object当成数组使用的情况下(比如使用连续整数作为属性),浏览器引擎可以进行优化,在内存中使用更高效的布局。这对Map来说是不可能的。对这两个类型而言,查找速度不会随着键/值对数量增加而线性增加。
一、Map和普通的object对象对比 1.map对象的key可以是任何数据类型,object对象的key只能是字符串 2.map可以通过size属性获取长度,object只能通过循环遍历 二、基本Map特性 new Map()创建新的 Map 对象。 set()为 Map 对象中的键设置值。 (注意: 设置引用类型数据,key是引用指向,比如:let myMap = new Map()...
Map这玩意大家应该都很了解了, JS的一个所谓的新的数据结构。 由于Map的key可以是任意数据格式,在日常编程过程中大家应该都经常使用,并且也经常会有文章告诉我们,Map的增删查性能会优于Object。 关于这个我也自己做了一点小小的实验,的确如此,结果见下图和链接。 性能对比网站:JavaScript performance benchmarking play...
obj["name"] ="zs"console.log(obj)letm =newMap() m.set("name","ls")console.log(m) 6.Size属性。map有size属性,对象没有。Map.size 返回 Map 中元素的数量,而 Object 的键值对个数只能手动计算 letm =newMap() m.set("name","ls") ...
#2 首先是Object。 最臭名昭著的内置key问题,迭代的时候不得不用hasOwnProperty来判断是否是自身属性,但是依然不是很靠谱,于是又出现了新接口Object.hasOwn(object, key)。 const myMap = {} myMap.valueOf // => [Function: valueOf] myMap.toString // => [Function: toString] myMap.hasOwnProperty ...