2017-08-17 87 views
3

我對JavaScript很新,我對如何優化if語句有疑問。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'。 –

回答

5

下面的代碼:

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

相當於

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

因爲沒有elseif在JavaScript - 看到documentation。 所以答案是statement2中的任何函數都會被簡單地忽略。

0

如果if表達式測試爲true,則else子句中的任何內容都不會執行,因此在這種情況下,第二個版本的代碼肯定會保存函數調用。