猿问
下载APP

Map.has 与 Map.get 之间的性能差异

Map.has()用于检查 key 是否存在Map而不是 using有什么好处Map.get()吗?(代码可读性原因除外)

我检查了 ES2015 语言规范,除了返回值外,两种方法似乎都一样,所以我相信性能是一样的,但也许还有一些我不知道的其他方面会影响这里的性能。

Map.prototype.has ( key )

采取以下步骤:

令 M 为 this 值。如果 Type(M) 不是 Object,则抛出 TypeError 异常。如果 M 没有 [[MapData]] 内部槽,则抛出 TypeError 异常。让条目成为列表,它是 M 的 [[MapData]] 内部槽的值。对作为条目元素的每个记录 {[[key]], [[value]]} p 重复,如果 p.[[key]] 不为空并且 SameValueZero(p.[[key]], key) 是真,返回真。返回假。

Map.prototype.get ( key )

采取以下步骤:

令 M 为 this 值。如果 Type(M) 不是 Object,则抛出 TypeError 异常。如果 M 没有 [[MapData]] 内部槽,则抛出 TypeError 异常。让条目成为列表,它是 M 的 [[MapData]] 内部槽的值。对作为条目元素的每个记录 {[[key]], [[value]]} p 重复,如果 p.[[key]] 不为空并且 SameValueZero(p.[[key]], key) 是真,返回 p.[[value]]。返回未定义。


哈士奇WWW
浏览 196回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP