月落乌啼by边想 阅读:在javascript中switch和if哪个执行的更快

来源:百度文库 编辑:高校问答 时间:2024/04/28 05:58:30
例如我要选择一些东西。我可以使用
-------------------
if (a==1){}
if (a==2){}
if (a==4){}
……
-------------------
我也可以使用
-------------------
switch(s){
case "1":
case "2":
case "4":
……
}
-------------------
那么哪个更快?还是都差不多?有没有测试的语句,有谁能帮忙些一个

<script>
var t,s0,s1;
t=new Date();
s0=t.getTime();
document.write("Time:<br />");
var a=null;
var x;
var count=400000;
for(var i=0;i<count;i++){
switch(a){
case true:
x=1;
break;
case false:
x=1;
break;
default:
x=1;
}
}
t=new Date();
s1=t.getTime();
document.write("switch: "+(s1-s0)+" ms");
document.write("<br />");
for(var i=0;i<count;i++){
if(a==true){
x=1;
}
else if(a==false){
x=1;
}
else{
x=1;
}
}
s0=s1;
t=new Date();
s1=t.getTime();
document.write("ifelse: "+(s1-s0)+" ms");
document.write("<br />");
</script>

几组结果:

Time:
switch: 862 ms
ifelse: 941 ms

Time:
switch: 851 ms
ifelse: 952 ms

Time:
switch: 851 ms
ifelse: 941 ms

应该是运算速度差不多。在情况比较多的情况下,用switch书写比较方便,节省屏幕空间,减少重复劳动