JavaScript:`if / else`语句比条件语句更快吗?

时间:2012-10-17 16:25:52

标签: javascript performance if-statement conditional-statements micro-optimization

考虑以下两段代码:

var adj=0>grip.y?0<grip.x?0:-180:0<grip.x?-360:-180;

var adj;    
if (grip.y < 0) {   
    if (grip.x > 0)
        adj = 0;
    else
        adj = -180;
}
else {      
    if (grip.x > 0)
        adj = -360;
    else
        adj = -180;
}

它们都产生相同的结果,但速度更快?

3 个答案:

答案 0 :(得分:2)

速度差异可以忽略不计 - 使用您发现的更方便和可读性。错误的条件构造不会有任何问题。

答案 1 :(得分:0)

使用切换条件,比if和其他条件语句更快。

答案 2 :(得分:-1)

为了检查JavaScript的性能,我尝试做一个小实验。

console.time("ternary operator");
const val = (5 > 2) ? true : false;
console.log(val);
console.timeEnd("ternary operator");

console.time("if condition");
let val2;
if (5 > 2) {
val2 = true;
} else {
val2 = false;
}
console.log(val2)

console.timeEnd("if condition");

并且输出非常令人震惊,因为if条件几乎比三元语句快两倍。

结果:- enter image description here

因此,总而言之,我建议对三元运算符使用if条件。