0

考慮下面的代碼兩個部分:JavaScript:'if/else`語句比條件語句快嗎?

var adj=0>grip.y?0<grip.x?0:-180:0<grip.x?-360:-180; 

var adj;  
if (grip.y < 0) { 
    if (grip.x > 0) 
     adj = 0; 
    else 
     adj = -180; 
} 
else {  
    if (grip.x > 0) 
     adj = -360; 
    else 
     adj = -180; 
} 

他們都產生相同的結果,但是這是更快?

+4

微觀最優化,不要打擾。如果你在意,在http://jsperf.com/ –

+0

上創建一個基準,那麼將會有一點點差異,使用更可讀的基準。 – richardtz

+0

您的第一個條件稱爲「三元」操作符。 – mydogisbox

回答

2

速度差異可以忽略不計 - 使用無論你發現哪一個更方便和可讀。不會有任何問題與錯誤的條件構造。

+0

我知道這兩者之間幾乎沒有什麼區別,但我對優化'mousemove'事件處理程序感興趣,所以操作越少越好(顯然)。 –

+0

@AndreiOniga我真的認爲會有這樣的區別。這一切都取決於你的方便。 Plz通過這個鏈接http://www.quirksmode.org/js/events_mouse.html。根據您的便利,我會推薦其他人或三元運營商。有些例子(最後)也可以在鏈接中回答你。 :) –

+0

我會承認,在許多情況下,爲了清晰起見,我傾向於使用if ... else。 –

0

使用開關條件,即比if和其他條件語句更快。