if语句的Javascript微优化

时间:2017-08-17 12:44:10

标签: javascript optimization micro-optimization

我对JavaScript很新,我对如何优化if语句有疑问。

我将向您展示两种情况。

//first

var number = 10;
var calculationOneResult = functionOne(number);
var calculationTwoResult = functionTwo(number);

if (calculationOneResult === true) {
    //stuff
} else if (calculationTwoResult === true) {
    //more stuffs
}


//second

var number = 10;

if (functionOne(number) === true) {
    //stuff
} else if (functionTwo(number) === true) {
    //more stuffs
}

这是我的问题: 在第一个场景中,我正在计算两次。 在第二个函数中,如果第一个函数返回true,它是否会计算第二个elseif语句,还是会在执行stuff后跳过它?

2 个答案:

答案 0 :(得分:5)

以下代码:

if(statement1) {
    // stuff
} else if(statement2) {
    // other stuff
}

相当于

if(statement1) {
    // stuff
} else {
    if(statement2) {
    // other stuff
   }
}

因为JavaScript中没有elseif - 请参阅documentation。 所以答案是statement2中的任何函数都会被简单地跳过。

答案 1 :(得分:0)

如果else表达式测试为if,则true子句中不会执行任何内容,因此在这种情况下,代码的第二个版本肯定会保存函数调用。