的是它存儲在一個變量表達式的值,最好的做法,說switch語句的表達式是一次或每個情況的評估?
var category = fetchCategory();
switch(category) {
case 'movie': ... break;
case 'music': ... break;
case 'book': ... break;
default: ...
}
對戰:
switch(fetchCategory()) {
case 'movie': ... break;
case 'music': ... break;
case 'book': ... break;
default: ...
}
任何有任何顯著的性能差異?
這取決於,你是否打算只使用'category'一次,如果是這樣,沒有性能增益來存儲它?在任何現代優化的瀏覽器中,'switch'可能只會調用一次函數,而不是每種情況。 – adeneo
當然,切換表達式會被評估一次。兩者對於所有實際目的都是相同的。 –
您可以輕鬆地通過將例如'alert()'到'fetchCategory'中。 – melpomene