2017-08-17 20 views
3

私はJavaScriptをかなり使い慣れており、if文を最適化する方法に関する質問があります。if文のJavascriptのマイクロ最適化

2つのシナリオを示します。ここで

//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 
} 

は私の質問です:最初のシナリオでは 、私は2つの時間を計算しています。 2番目の関数では、最初の関数がtrueを返した場合、2番目のelseifステートメントが計算されるのですか、またはstuffを実行した後でスキップしますか?

+1

これはスキップします。 – Satpal

+1

条件で「真」と照合する必要はありません。 –

答えて

5

次のコードは、: - documentationを参照してくださいJavaScriptで何elseifがないよう

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

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

に相当します。 答えはstatement2の関数は単純にスキップされます。

0

ifの式がtrueとテストされている場合、何も実行されないため、コードの2番目のバージョンではこのような場合に関数呼び出しが確実に保存されます。

関連する問題