JavaScript if语句的微小优化

3

我是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后跳过它?


1
它会在完成任务后跳过。 - Satpal
1
在条件语句中,你不需要检查是否为 true - Nina Scholz
2个回答

5
下面的代码:
if(statement1) {
    // stuff
} else if(statement2) {
    // other stuff
}

等价于

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

由于JavaScript中没有elseif语句 - 请参阅文档,因此答案是statement2中的任何函数都将被简单地跳过。

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接