gpt4 book ai didi

javascript - 切换 vs 对象查找性能(因为 jsperf 已关闭)

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:13:49 24 4
gpt4 key购买 nike

在我看来,在某些情况下,如果某个值等于某个值,则有两种方法可以做某事:切换或对象查找。

使用开关:

var value = ["Hello", "hi", "bYe", "die"][Math.floor(Math.random() * (4))];

switch (value.toLowerCase()) {
case "hello":
alert(value + "\n\n" + "hi");
break;
case "hi":
alert(value + "\n\n" + "hello");
break;
case "bye":
alert(value + "\n\n" + "no");
break;
case "die":
alert(value + "\n\n" + "you shot me");
break;
}

使用对象查找:

var value = ["Hello", "hi", "bYe", "die"][Math.floor(Math.random() * (4))];

var LOOKUP = {
"hello": function(v) {
alert(v + "\n\n" + "hi");
},
"hi": function(v) {
alert(v + "\n\n" + "hello");
},
"bye": function(v) {
alert(v + "\n\n" + "no");
},
"die": function(v) {
alert(v + "\n\n" + "you shot me");
},
};

LOOKUP[value.toLowerCase()](value);

我想知道哪个性能更好?

这两种方法都会有任何不明显的问题/陷阱吗?

最佳答案

原始答案:查找表要快得多。

2020 年更新答案:这两种方法在现代浏览器中的表现几乎相同,switch 语句比查找表快 20-30%。

前段时间我也有同样的疑问。如果 jsperf 复活了,这就是链接。 https://jsperf.com/if-switch-lookup-table/10

编辑:工作基准 https://jsben.ch/JYZLQ

关于javascript - 切换 vs 对象查找性能(因为 jsperf 已关闭),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37730199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com