我对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
后跳过它?
答案 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
子句中不会执行任何内容,因此在这种情况下,代码的第二个版本肯定会保存函数调用。