我看到它的方式,對於某些情況,如果某些值等於某個值,則有兩種方法可以執行操作:交換機或對象查找。交換機與對象查找性能(因爲jsperf處於關閉狀態)
使用switch:
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);
我想知道,這將有BETT呃表現?
這兩種方法都會有什麼不明顯的問題/疑難問題嗎?
還有其他的方法比jsperf剖析代碼:https://developers.google.com/web/tools/chrome-devtools/profile/或寫一個簡單的腳本節點。 –