找不到這個問題的更好的標題,所以編輯建議將不勝感激。分配變量條件與內聯條件檢查
我想知道是否有檢查條件與分配的變量和內聯條件之間的差異。
例如:
選項1:
// inline conditions check
function isSomething(){
return (1 > 2 || 'a' == 'a' || 2 < 4) ||
(55 == 1 || (32 > 4 || 'a' == 'a') && 6 > 2) ||
('abc' != 'bca' && 3 == 3);
}
選項2:
// pre assigned variables condition check
function isSomething(){
const conditionA = 1 > 2 || 'a' == 'a' || 2 < 4; // some complex condition
const conditionB = 55 == 1 || (32 > 4 || 'a' == 'a') && 6 > 2; // some complex condition
const conditionC = 'abc' != 'bca' && 3 == 3 // some complex condition
const result = conditionA || conditionB || conditionC;
return result;
}
看來,在選項2,必須檢查所有3個條件,但在選項1理論上它可以在第一次檢查後返回,如果它是true
。
很明顯,選項2是我的選擇,因爲它更具可讀性,但我想知道行爲或性能有差異嗎? 有沒有辦法測試兩種選擇之間的性能?
至於性能測試,如果你還沒有聽說過jsPerf的,這可能是最好的時刻訪問該網站。有多種替代方案,它們都在瀏覽器中聯機(例如http://jsben.ch/#/7XyeB)。 –
@WiktorZychla有趣,謝謝我不知道這一點。雖然我有時會得到不同的結果。例如:代碼塊1最快,然後代碼塊2最快 –