Javascript if 语句的微优化

Javascript micro optimisation for if statement

我是 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
}

这是我的问题: 在第一种情况下,我计算了两次。 在第二个中,如果第一个函数 returns true,它会计算第二个 elseif 语句还是会在执行 stuff 之后跳过它?

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

以下代码:

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

等同于

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

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