哪种方法更快?条件IF或数学公式?

时间:2011-12-01 13:06:54

标签: javascript math optimization conditional-statements

它只是切换名称和&以前性别的人的性别。

function changeName(gender){
    if(gender==0){
        name='Foo';
        gender=1;
}else{
        name='Bar';
        gender=0;
    }
}

OR

names=['Foo','Bar'];
function changeName(gender){
    name=names[gender];
    gender=1-gender; // Thanks Kerrek
}

2 个答案:

答案 0 :(得分:3)

这是jsPerf,一个很棒的在线工具,“旨在提供一种简单的方法来创建和共享测试用例,通过运行基准来比较不同JavaScript代码段的性能。”

希望这有帮助,不要忘记发布你的结果; - )

答案 1 :(得分:0)

如果性别只能取两个值,那么性能就不会有太大差异。但是,如果性别可以包含很多值,那么if块看起来就像这样

if ( gender == 0 )
{
}
else if ( gender == 1 )
{
}
else if ( gender == 2 )
{
}
else if ( gender == 3 )
{
}

会慢一些,不太好看。