讀古今文學網 > 編寫高質量代碼:改善JavaScript程序的188個建議 > 建議23:推薦提高條件性能的策略 >

建議23:推薦提高條件性能的策略

與循環相似,條件表達式決定JavaScript運行流的走向。與其他語言一樣,JavaScript也採用了if和switch兩種條件結構。由於不同瀏覽器針對流程控制進行了不同的優化,因此兩者在性能上並沒有特別大的差異,主要還是根據需求形式進行分析和選擇:條件數量較大,建議選擇switch結構,而不是if結構,這樣可以使代碼更易讀;如果條件較少時,建議選擇if結構。


//條件少

if(found){

//執行代碼

}else{

//執行代碼

}

//條件多

switch(color){

case"red":

//執行代碼

break;

case"blue":

//執行代碼

break;

case"brown":

//執行代碼

break;

case"black":

//執行代碼

break;

default:

//執行代碼

}


事實證明,在大多數情況下,switch比if運行更快,但是只有當條件體數量很大時才明顯更快。switch與if的主要性能區別在於:當條件體增加時,if性能負擔增加的程度比switch更大。因此,從性能方面考慮,如果條件體較少,應使用if;如果條件體較多,應使用switch。

一般來說,if適用於判斷兩個離散的值或幾個不同的值域。如果判斷多於兩個離散值,那麼switch將是更理想的選擇。