jef*_*eon 21 javascript optimization if-statement
我正在开发一个需要一些非常复杂的JavaScript处理的项目.这包括许多嵌套if- else在很多地方.通过阅读Stack Overflow上的其他技巧,我一般都会尽可能地优化JavaScript代码,但我想知道以下两个结构是否会对速度方面产生任何影响:
if(some_condition) {
// process
return ;
}
// Continue the else condition here
Run Code Online (Sandbox Code Playgroud)
VS
if(some_condition) {
// Process
}
else {
// The 'else' condition...
}
Run Code Online (Sandbox Code Playgroud)
Jos*_*ola 19
我总是采用第一种方法.更容易阅读,减少缩进.就执行速度而言,这将取决于实现,但我希望它们都是相同的.
在排除无效情况时我会使用第一种方法。
例如。在进行某些验证时使用第一种方法,如果任何验证失败则返回。如果任何一个先决条件不成立,那么进一步就没有意义了。Martin fowler 在他的《重构》一书中也提到了同样的事情。他称之为“用保护条款取代条件”。而且确实可以让代码变得容易理解。
这是一个 java 示例。
public void debitAccount(Account account, BigDecimal amount) {
if(account.user == getCurrentUser()) {
if(account.balance > amount) {
account.balance = account.balance - amount
} else {
//return or throw exception
}
} else {
//return or throw exception
}
}
Run Code Online (Sandbox Code Playgroud)
VS
public void debitAccount(Account account, BigDecimal amount) {
if(account.user != getCurrentUser()) return //or error
if(account.balance < amount) return //or error
account.balance = account.balance - amount
}
Run Code Online (Sandbox Code Playgroud)